rhoknp.units.document module

class rhoknp.units.document.Document(text: str | None = None)[source]

Bases: Unit

文書クラス.

Parameters:

text – 文書の文字列.

EOD = 'EOD'
doc_id: str

文書 ID.

property did: str

文書 ID(doc_id のエイリアス).

property sentences: list[Sentence]

文のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property clauses: list[Clause]

節のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property phrases: list[Phrase]

文節のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property base_phrases: list[BasePhrase]

基本句のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property morphemes: list[Morpheme]

形態素のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property named_entities: list[NamedEntity]

固有表現のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

property pas_list: list[Pas]

述語項構造のリスト.

Raises:

AttributeError – 解析結果にアクセスできない場合.

classmethod from_raw_text(text: str) Document[source]

文書クラスのインスタンスを文書の生テキストから初期化.

Parameters:

text – 文書の生テキスト.

Example

>>> from rhoknp import Document
>>> text = "天気が良かったので散歩した。途中で先生に会った。"
>>> doc = Document.from_raw_text(text)
classmethod from_line_by_line_text(text: str) Document[source]

文書クラスのインスタンスを一行一文形式のテキストから初期化.

Parameters:

text – 一行一文形式に整形された文書のテキスト.

Example

>>> from rhoknp import Document
>>> sents = """
... # S-ID:1
... 天気が良かったので散歩した。
... # S-ID:2
... 途中で先生に会った。
... """
>>> doc = Document.from_line_by_line_text(sents)

Note

# から始まる行は直後の文に対するコメントとして認識される.

classmethod from_sentences(sentences: Sequence[Sentence | str]) Document[source]

文書クラスのインスタンスを文のリストから初期化.

Parameters:

sentences – 文(文の文字列)のリスト.

Example

>>> from rhoknp import Document
>>> sents = ["天気が良かったので散歩した。", "途中で先生に会った。"]
>>> doc = Document.from_sentences(sents)
classmethod from_jumanpp(jumanpp_text: str) Document[source]

文書クラスのインスタンスを Juman++ の解析結果から初期化.

Parameters:

jumanpp_text – Juman++ の解析結果.

Raises:

ValueError – 解析結果読み込み中にエラーが発生した場合.

Example

>>> from rhoknp import Document
>>> jumanpp_text = """
... # S-ID:1
... 天気 てんき 天気 名詞 6 普通名詞 1 * 0 * 0 "代表表記:天気/てんき カテゴリ:抽象物"
... が が が 助詞 9 格助詞 1 * 0 * 0 NIL
... 良かった よかった 良い 形容詞 3 * 0 イ形容詞アウオ段 18 タ形 8 "代表表記:良い/よい 反義:形容詞:悪い/わるい"
... ので ので のだ 助動詞 5 * 0 ナ形容詞 21 ダ列タ系連用テ形 12 NIL
... 散歩 さんぽ 散歩 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:散歩/さんぽ ドメイン:レクリエーション カテゴリ:抽象物"
... した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 自他動詞:自:成る/なる 付属動詞候補(基本)"
... 。 。 。 特殊 1 句点 1 * 0 * 0 NIL
... EOS
... # S-ID:2
... 途中 とちゅう 途中 名詞 6 時相名詞 10 * 0 * 0 "代表表記:途中/とちゅう カテゴリ:抽象物 弱時相名詞 修飾(デ格)"
... で で で 助詞 9 格助詞 1 * 0 * 0 NIL
... 先生 せんせい 先生 名詞 6 普通名詞 1 * 0 * 0 "代表表記:先生/せんせい ドメイン:教育・学習 カテゴリ:人 人名末尾"
... に に に 助詞 9 格助詞 1 * 0 * 0 NIL
... 会った あった 会う 動詞 2 * 0 子音動詞ワ行 12 タ形 10 "代表表記:会う/あう 反義:動詞:分かれる/わかれる;動詞:別れる/わかれる"
... EOS
... """
>>> doc = Document.from_jumanpp(jumanpp_text)

Note

複数文の解析結果が含まれている場合,一つの文書として扱われる.

classmethod from_knp(knp_text: str) Document[source]

文書クラスのインスタンスを KNP の解析結果から初期化.

Parameters:

knp_text – KNP の解析結果.

Raises:

ValueError – 解析結果読み込み中にエラーが発生した場合.

Example

>>> from rhoknp import Document
>>> knp_text = """
... # S-ID:1
... * 1D
... + 1D
... 天気 てんき 天気 名詞 6 普通名詞 1 * 0 * 0 "代表表記:天気/てんき カテゴリ:抽象物"
... が が が 助詞 9 格助詞 1 * 0 * 0 NIL
... * 2D
... + 2D <節-区切><節-主辞>
... 良かった よかった 良い 形容詞 3 * 0 イ形容詞アウオ段 18 タ形 8 "代表表記:良い/よい 反義:形容詞:悪い/わるい"
... ので ので のだ 助動詞 5 * 0 ナ形容詞 21 ダ列タ系連用テ形 12 NIL
... * -1D
... + -1D <節-区切><節-主辞>
... 散歩 さんぽ 散歩 名詞 6 サ変名詞 2 * 0 * 0 "代表表記:散歩/さんぽ ドメイン:レクリエーション カテゴリ:抽象物"
... した した する 動詞 2 * 0 サ変動詞 16 タ形 10 "代表表記:する/する 自他動詞:自:成る/なる 付属動詞候補(基本)"
... 。 。 。 特殊 1 句点 1 * 0 * 0 NIL
... EOS
... # S-ID:2
... * 2D
... + 2D
... 途中 とちゅう 途中 名詞 6 時相名詞 10 * 0 * 0 "代表表記:途中/とちゅう カテゴリ:抽象物 弱時相名詞 修飾(デ格)"
... で で で 助詞 9 格助詞 1 * 0 * 0 NIL
... * 2D
... + 2D
... 先生 せんせい 先生 名詞 6 普通名詞 1 * 0 * 0 "代表表記:先生/せんせい ドメイン:教育・学習 カテゴリ:人 人名末尾"
... に に に 助詞 9 格助詞 1 * 0 * 0 NIL
... * -1D
... + -1D <節-区切><節-主辞>
... 会った あった 会う 動詞 2 * 0 子音動詞ワ行 12 タ形 10 "代表表記:会う/あう 反義:動詞:分かれる/わかれる;動詞:別れる/わかれる"
... 。 。 。 特殊 1 句点 1 * 0 * 0 NIL
... EOS
... """
>>> doc = Document.from_knp(knp_text)

Note

複数文の解析結果が含まれている場合,一つの文書として扱われる.

is_senter_required() bool[source]

文分割がまだなら True.

is_jumanpp_required() bool[source]

Juman++ による形態素解析がまだなら True.

is_knp_required() bool[source]

KNP による構文解析がまだなら True.

is_clause_tag_required() bool[source]

KNP による節-主辞・節-区切のタグ付与がまだなら True.

reparse() Document[source]

文書を再構築.

Note

解析結果に対する編集を有効にする際に実行する必要がある.

to_raw_text() str[source]

生テキストフォーマットに変換.

Note

文分割済みの場合は一行一文の形式で出力.

to_jumanpp() str[source]

Juman++ フォーマットに変換.

Raises:

AttributeError – 解析結果にアクセスできない場合.

to_knp() str[source]

KNP フォーマットに変換.

Raises:

AttributeError – 解析結果にアクセスできない場合.