pygeonlp.api.linker module

class pygeonlp.api.linker.LinkedResults(lattice)

ベースクラス: object

ラティス表現からパス表現の候補を 次々に出力するイテレータを作成します。

サンプル

>>> import pygeonlp.api as api
>>> from pygeonlp.api.linker import LinkedResults
>>> api.init()
>>> for lr in LinkedResults(api.analyze('国会議事堂前まで歩きました。')):
...     [x.simple() for x in lr]
["国会議事堂前(GEOWORD:['東京地下鉄', '4号線丸ノ内線'])", 'まで(NORMAL)', '歩き(NORMAL)', 'まし(NORMAL)', 'た(NORMAL)', '。(NORMAL)']
["国会議事堂前(GEOWORD:['東京地下鉄', '9号線千代田線'])", 'まで(NORMAL)', '歩き(NORMAL)', 'まし(NORMAL)', 'た(NORMAL)', '。(NORMAL)']
counter()

カウンターを返します。

get_result()

カウンターが示している候補リストを返します。 カウンターは次に進めません。

increment_counter()

カウンターを次に進めます。

reset_counter()

カウンターを初期化します。

class pygeonlp.api.linker.Evaluator(scoring_class=None, scoring_options=None, max_results=5, max_combinations=None)

ベースクラス: object

ラティス表現から、指定したメソッドで計算したスコアの高いものから 順に並べたパス表現を作成します。

スコアリングに独自のメソッドを利用する場合は scoring_method で指定してください。

サンプル

>>> import pygeonlp.api as api
>>> from pygeonlp.api.linker import Evaluator
>>> api.init()
>>> rr = Evaluator(max_results=5)
>>> for x in rr.get(api.analyze('福島は大阪から2分です。')):
...   (x['score'], [n.simple() for n in x['result']])
...
(46, ["福島(GEOWORD:['西日本旅客鉄道', '大阪環状線'])", 'は(NORMAL)', "大阪(GEOWORD:['西日本旅客鉄道', '大阪環状線'])", 'から(NORMAL)', '2(NORMAL)', '分(NORMAL)', 'です(NORMAL)', '。(NORMAL)'])
(46, ["福島(GEOWORD:['西日本旅客鉄道', '大阪環状線'])", 'は(NORMAL)', "大阪(GEOWORD:['西日本旅客鉄道', '東海道線'])", 'から(NORMAL)', '2(NORMAL)', '分(NORMAL)', 'です(NORMAL)', '。(NORMAL)'])
(41, ["福島(GEOWORD:['阪神電気鉄道', '本線'])", 'は(NORMAL)', "大阪(GEOWORD:['西日本旅客鉄道', '大阪環状線'])", 'から(NORMAL)', '2(NORMAL)', '分(NORMAL)', 'です(NORMAL)', '。(NORMAL)'])
(41, ["福島(GEOWORD:['阪神電気鉄道', '本線'])", 'は(NORMAL)', "大阪(GEOWORD:['西日本旅客鉄道', '東海道線'])", 'から(NORMAL)', '2(NORMAL)', '分(NORMAL)', 'です(NORMAL)', '。(NORMAL)'])
(36, ['福島(GEOWORD,福島県)', 'は(NORMAL)', '大阪(GEOWORD,大阪府)', 'から(NORMAL)', '2(NORMAL)', '分(NORMAL)', 'です(NORMAL)', '。(NORMAL)'])
scoring_class

スコアリングを行なうクラス。

Type:

class instance

scoring_options

スコアリングクラスの初期化に渡すオプションパラメータ。

Type:

any

scorer

スコアリングを行なうクラスインスタンス。

Type:

service.ScoringClass instance

max_results

保持する結果の最大数。

Type:

int

__init__(scoring_class=None, scoring_options=None, max_results=5, max_combinations=None)
パラメータ:
  • scoring_class (class, optional) -- パスのスコアとノード間のスコアを計算する関数を持つ スコアリングクラス。 指定しない場合、pygeonlp.api.scoring モジュール内の ScoringClass が利用されます。

  • scoring_options (any, optional) -- スコアリングクラスの初期化に渡すオプションパラメータ。

  • max_results (int, optional) -- 保持する結果の最大数を指定します(デフォルト = 5)。

  • max_combinations (int, optional) -- ノード候補の組み合わせ数の上限値。これを超える組み合わせが 可能な入力が与えられた場合は例外 LinkerError を発生します。 デフォルト値は linker.MAX_COMBINATIONS です。

as_dict(lattice)

get() と同じ処理を行ないますが、結果に含まれるノードの情報を JSON に変換可能な dict に変換してから返します。

パラメータ:

lattice (list) -- 入力となるラティス表現。

戻り値:

get() の出力結果を JSON 変換可能な形式に変換したリスト。

戻り値の型:

list

as_geojson(lattice)

get() と同じ処理を行ないますが、結果に含まれるノードの情報を GeoJSON FeatureCollection に変換可能な dict に変換してから返します。

パラメータ:

lattice (list) -- 入力となるラティス表現。

戻り値:

get() の出力結果を GeoJSON 変換可能な形式に変換したリスト。

戻り値の型:

list

static collect_addresses(result)

パス表現の結果に含まれる住所セットを返します。

処理結果に含まれる住所だけを列挙する場合に利用する簡易メソッドです。

static collect_geowords(result)

パス表現の結果に含まれる地名語のセットを返します。

処理結果に含まれる地名語だけを列挙する場合に利用する簡易メソッドです。

count_combinations(lattice)

ラティス形式の入力に対し、組み合わせたパス表現の個数を計算します。

パラメータ:

lattice (list) -- 入力となるラティス表現。

戻り値:

組み合わせの数。

戻り値の型:

int

get(lattice)

ラティス表現を入力として、スコアリングと並べ替えを行ないます。

パラメータ:

lattice (list) -- 入力となるラティス表現。

戻り値:

スコアを 'score', パス表現の解析結果を 'result' に持つ dict のリスト。 スコア降順にソートされ、最大 max_results 個の要素を含みます。

戻り値の型:

list