From a2c1c708c182760853ba365f6eeba3a313942fe5 Mon Sep 17 00:00:00 2001 From: Hirokazu Kiyomaru Date: Wed, 10 Aug 2022 19:12:15 +0900 Subject: [PATCH] clean code --- src/rhoknp/units/base_phrase.py | 18 ++++++++---------- src/rhoknp/units/clause.py | 25 ++++++------------------- src/rhoknp/units/document.py | 7 +++---- src/rhoknp/units/morpheme.py | 8 +++----- src/rhoknp/units/phrase.py | 12 +++++------- src/rhoknp/units/sentence.py | 5 ++--- 6 files changed, 27 insertions(+), 48 deletions(-) diff --git a/src/rhoknp/units/base_phrase.py b/src/rhoknp/units/base_phrase.py index 49b29493..a8091315 100644 --- a/src/rhoknp/units/base_phrase.py +++ b/src/rhoknp/units/base_phrase.py @@ -68,11 +68,9 @@ def global_index(self) -> int: """文書全体におけるインデックス.""" if self.index > 0: return self.sentence.base_phrases[self.index - 1].global_index + 1 - else: - if self.sentence.index == 0: - return self.index - else: - return self.document.sentences[self.sentence.index - 1].base_phrases[-1].global_index + 1 + if self.sentence.index == 0: + return self.index + return self.document.sentences[self.sentence.index - 1].base_phrases[-1].global_index + 1 @property def parent_unit(self) -> Optional["Phrase"]: @@ -133,17 +131,17 @@ def phrase(self, phrase: "Phrase") -> None: @property def morphemes(self) -> list[Morpheme]: - """形態素.""" + """形態素のリスト.""" if self._morphemes is None: raise AssertionError return self._morphemes @morphemes.setter def morphemes(self, morphemes: list[Morpheme]) -> None: - """形態素. + """形態素のリスト. Args: - morphemes: 形態素. + morphemes: 形態素のリスト. """ for morpheme in morphemes: morpheme.base_phrase = self @@ -274,7 +272,7 @@ def add_entity(self, entity: Entity, nonidentical: bool = False) -> None: self.entities.add(entity) entity.add_mention(self, nonidentical=nonidentical) - def parse_rel(self) -> None: + def parse_rel_tag(self) -> None: """関係タグ付きコーパスにおける タグをパース.""" if self.pas is None: self.pas = Pas(Predicate(self)) @@ -290,7 +288,7 @@ def parse_rel(self) -> None: else: logger.warning(f"unknown rel type: {rel.type}") - def parse_knp_pas(self) -> None: + def parse_pas_tag(self) -> None: """KNP 解析結果における <述語項構造> タグおよび <格解析結果> タグをパース.""" if "述語項構造" in self.features: pas_string = self.features["述語項構造"] diff --git a/src/rhoknp/units/clause.py b/src/rhoknp/units/clause.py index 747f741b..b47650a6 100644 --- a/src/rhoknp/units/clause.py +++ b/src/rhoknp/units/clause.py @@ -29,7 +29,7 @@ def __init__(self) -> None: # child units self._phrases: Optional[list[Phrase]] = None - self._discourse_relations: Optional[DiscourseRelationList] = None + self.discourse_relations: DiscourseRelationList = DiscourseRelationList() self.index = self.count Clause.count += 1 @@ -39,11 +39,9 @@ def global_index(self) -> int: """文書全体におけるインデックス.""" if self.index > 0: return self.sentence.clauses[self.index - 1].global_index + 1 - else: - if self.sentence.index == 0: - return self.index - else: - return self.document.sentences[self.sentence.index - 1].clauses[-1].global_index + 1 + if self.sentence.index == 0: + return self.index + return self.document.sentences[self.sentence.index - 1].clauses[-1].global_index + 1 @property def parent_unit(self) -> Optional["Sentence"]: @@ -149,17 +147,6 @@ def children(self) -> list["Clause"]: """この節に係っている節のリスト.""" return [clause for clause in self.sentence.clauses if clause.parent == self] - @property - def discourse_relations(self) -> "DiscourseRelationList": - """談話関係. - - Raises: - AttributeError: 解析結果にアクセスできない場合. - """ - if self._discourse_relations is None: - raise AttributeError("discourse relations have not been set") - return self._discourse_relations - @classmethod def from_knp(cls, knp_text: str) -> "Clause": """節クラスのインスタンスを KNP の解析結果から初期化. @@ -188,7 +175,7 @@ def to_knp(self) -> str: return "".join(phrase.to_knp() for phrase in self.phrases) def parse_discourse_relation_tag(self) -> None: - self._discourse_relations = DiscourseRelationList() + self.discourse_relations = DiscourseRelationList() for value in self.end.discourse_relation_tag.values: if discourse_relation := DiscourseRelation.from_discourse_relation_tag_value(value, modifier=self): - self._discourse_relations.append(discourse_relation) + self.discourse_relations.append(discourse_relation) diff --git a/src/rhoknp/units/document.py b/src/rhoknp/units/document.py index 688ec636..df6027de 100644 --- a/src/rhoknp/units/document.py +++ b/src/rhoknp/units/document.py @@ -50,7 +50,7 @@ def _post_init(self) -> None: sentence.post_init() if self.need_knp is False: for base_phrase in self.base_phrases: - base_phrase.parse_rel() + base_phrase.parse_rel_tag() @property def parent_unit(self) -> None: @@ -269,7 +269,7 @@ def from_jumanpp(cls, jumanpp_text: str, ignore_errors: bool = False) -> "Docume doc = Document.from_jumanpp(jumanpp_text) .. note:: - 複数文の解析結果が含まれている場合,一つの文書として扱われる.. + 複数文の解析結果が含まれている場合,一つの文書として扱われる. """ document = cls() sentences = [] @@ -372,8 +372,7 @@ def reparse(self) -> "Document": return Document.from_jumanpp(self.to_jumanpp()) elif self.need_senter is False: return Document.from_line_by_line_text(self.to_plain()) - else: - return Document.from_raw_text(self.to_plain()) + return Document.from_raw_text(self.to_plain()) def to_plain(self) -> str: """プレーンテキストフォーマットに変換. diff --git a/src/rhoknp/units/morpheme.py b/src/rhoknp/units/morpheme.py index e3d24cdb..42f57eeb 100644 --- a/src/rhoknp/units/morpheme.py +++ b/src/rhoknp/units/morpheme.py @@ -91,11 +91,9 @@ def global_index(self) -> int: """文書全体におけるインデックス.""" if self.index > 0: return self.sentence.morphemes[self.index - 1].global_index + 1 - else: - if self.sentence.index == 0: - return self.index - else: - return self.document.sentences[self.sentence.index - 1].morphemes[-1].global_index + 1 + if self.sentence.index == 0: + return self.index + return self.document.sentences[self.sentence.index - 1].morphemes[-1].global_index + 1 @property def parent_unit(self) -> Optional[Union["BasePhrase", "Sentence"]]: diff --git a/src/rhoknp/units/phrase.py b/src/rhoknp/units/phrase.py index a75d474f..1982ef32 100644 --- a/src/rhoknp/units/phrase.py +++ b/src/rhoknp/units/phrase.py @@ -42,11 +42,9 @@ def global_index(self) -> int: """文書全体におけるインデックス.""" if self.index > 0: return self.sentence.phrases[self.index - 1].global_index + 1 - else: - if self.sentence.index == 0: - return self.index - else: - return self.document.sentences[self.sentence.index - 1].phrases[-1].global_index + 1 + if self.sentence.index == 0: + return self.index + return self.document.sentences[self.sentence.index - 1].phrases[-1].global_index + 1 @property def parent_unit(self) -> Optional[Union["Clause", "Sentence"]]: @@ -118,10 +116,10 @@ def base_phrases(self) -> list[BasePhrase]: @base_phrases.setter def base_phrases(self, base_phrases: list[BasePhrase]) -> None: - """基本句. + """基本句のリスト. Args: - base_phrases: 基本句. + base_phrases: 基本句のリスト. """ for base_phrase in base_phrases: base_phrase.phrase = self diff --git a/src/rhoknp/units/sentence.py b/src/rhoknp/units/sentence.py index 39d2949b..920668ab 100644 --- a/src/rhoknp/units/sentence.py +++ b/src/rhoknp/units/sentence.py @@ -449,13 +449,12 @@ def reparse(self) -> "Sentence": return Sentence.from_knp(self.to_knp()) elif self.need_jumanpp is False: return Sentence.from_jumanpp(self.to_jumanpp()) - else: - return Sentence.from_raw_text(self.to_plain()) + return Sentence.from_raw_text(self.to_plain()) def _parse_knp_pas(self) -> None: """KNP 解析結果における <述語項構造> タグおよび <格解析結果> タグをパース.""" for base_phrase in self.base_phrases: - base_phrase.parse_knp_pas() + base_phrase.parse_pas_tag() def _parse_ne_tags(self) -> None: """ タグをパースし,固有表現オブジェクトを作成."""