Skip to content

Commit

Permalink
clean code
Browse files Browse the repository at this point in the history
  • Loading branch information
hkiyomaru committed Aug 10, 2022
1 parent c535786 commit a2c1c70
Show file tree
Hide file tree
Showing 6 changed files with 27 additions and 48 deletions.
18 changes: 8 additions & 10 deletions src/rhoknp/units/base_phrase.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]:
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -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:
"""関係タグ付きコーパスにおける <rel> タグをパース."""
if self.pas is None:
self.pas = Pas(Predicate(self))
Expand All @@ -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["述語項構造"]
Expand Down
25 changes: 6 additions & 19 deletions src/rhoknp/units/clause.py
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -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"]:
Expand Down Expand Up @@ -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 の解析結果から初期化.
Expand Down Expand Up @@ -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)
7 changes: 3 additions & 4 deletions src/rhoknp/units/document.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
Expand Down Expand Up @@ -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 = []
Expand Down Expand Up @@ -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:
"""プレーンテキストフォーマットに変換.
Expand Down
8 changes: 3 additions & 5 deletions src/rhoknp/units/morpheme.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]]:
Expand Down
12 changes: 5 additions & 7 deletions src/rhoknp/units/phrase.py
Original file line number Diff line number Diff line change
Expand Up @@ -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"]]:
Expand Down Expand Up @@ -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
Expand Down
5 changes: 2 additions & 3 deletions src/rhoknp/units/sentence.py
Original file line number Diff line number Diff line change
Expand Up @@ -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:
"""<NE> タグをパースし,固有表現オブジェクトを作成."""
Expand Down

0 comments on commit a2c1c70

Please sign in to comment.