borscht package

Submodules

borscht.ChainGenerator module

class borscht.ChainGenerator.ChainGenerator(text)

Bases: object

マルコフ連鎖に用いるチェーン(連鎖)を生成し、必要があれば JSON形式で出力・保存できるクラスです。

text : str
チェーン生成の元になる文。
tagger : MeCab.Tagger
形態素解析に用いる Tagger オブジェクト。
chain : dict
マルコフ連鎖に用いるチェーンが格納された辞書型配列。
BEGIN = 'BOS'
END = 'EOS'
dump()
generate_chain()

マルコフ連鎖に用いるチェーンを生成します。

chain : dict
マルコフ連載に用いるチェーン。 key: 3階マルコフ用の3つ組 val: 出現回数
generate_triplet_block(morphemes)

引数で渡された形態素の配列から、形態素毎の3つ組を生成し、 出現回数など、チェーンの生成に必要な情報を合わせたブロックを返します。

morphemes : list of str
形態素配列。3つ以上の形態素が含まれている場合のみ有効。
triplet_blocks : dict
3つ組とその出現回数が格納されたブロックの辞書型配列。 引数に渡された形態素の数自体が3つ以下の場合は空の辞書型配列が渡されます。 key: 3つ組 (tuple) val: 出現回数 (int)
morphological_analysis(sentence)

引数に渡された一文の形態素解析をします。

sentence : str
解析する文。
morphemes : list of str
形態素で分割された結果のリスト。
splitting_text(text)

引数に渡された長めの文章を一文ずつに分割します。

text : str
解析する文。
sentences : list of str
分割された一文ずつのリスト。

borscht.TextGenerator module

class borscht.TextGenerator.TextGenerator(chain_json_filepath)

Bases: object

Chainに基づいて文章を生成するクラスです。

chain : list
マルコフ連鎖に用いるチェーンが格納された配列。
generate()

ランダムに一文を生成します。

get_chain_data(filepath)

チェーン情報を JSONファイルから取得します。

chain : list
チェーンが格納された配列。
get_first_triplet()

文章のはじまりの3つ組をランダムに取得します。

triplet : tuple
文章のはじまりの3つ組が格納されたタプル。
get_probable_triplet(triplet_blocks)

引数として渡された三つ組の配列の中から確率的に一つ選び返します。

triplet_blocks : list
複数の “3つ組とそれに関する情報” が格納された配列。
triplet : dict
確率的に選んだ 3つ組
get_triplet(prefix1, prefix2)

prefix1 と prefix2 から suffix をランダムに取得します。

prefix1 : str
1つ目のprefix
prefix2 : str
2つ目のprefix
search_chain(*queries)

引数から指定された条件に合致するものをチェーンから取得します。

queries : tuple or list
チェーンの検索条件。
result : list
取得したチェーン情報の配列。

Module contents