Class: Igo::Tagger
- Inherits:
-
Object
- Object
- Igo::Tagger
- Defined in:
- lib/igo/tagger.rb
Overview
形態素解析を行うクラス
Class Method Summary collapse
Instance Method Summary collapse
-
#initialize(dir) ⇒ Tagger
constructor
- dir
-
辞書ファイルのディレクトリパス.
-
#parse(text, result = []) ⇒ Object
- 形態素解析を行う text
- 解析対象テキスト result
- 解析結果の形態素が追加される配列 return
-
解析結果の形態素配列.
-
#wakati(text, result = []) ⇒ Object
- 分かち書きを行う text
- 分かち書きされるテキスト result
- 分かち書き結果の文字列が追加される配列 return
-
分かち書き結果の文字列の配列.
Constructor Details
Class Method Details
.__BOS_NODES ⇒ Object
28 29 30 |
# File 'lib/igo/tagger.rb', line 28 def self.__BOS_NODES return [ViterbiNode.make_BOSEOS] end |
Instance Method Details
#parse(text, result = []) ⇒ Object
形態素解析を行う
- text
-
解析対象テキスト
- result
-
解析結果の形態素が追加される配列
- return
-
解析結果の形態素配列
43 44 45 46 47 48 49 50 51 52 53 54 55 56 |
# File 'lib/igo/tagger.rb', line 43 def parse(text, result=[]) vn = impl(text, result) txt = text.unpack("U*") while vn surface = txt.slice(vn.start, vn.length).pack("U*") s = @wdc.word_data(vn.word_id) feature = NKF.nkf('-W16L0 --utf8', s) result.push(Morpheme.new(surface, feature, vn.start)) vn = vn.prev end return result end |
#wakati(text, result = []) ⇒ Object
分かち書きを行う
- text
-
分かち書きされるテキスト
- result
-
分かち書き結果の文字列が追加される配列
- return
-
分かち書き結果の文字列の配列
62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/igo/tagger.rb', line 62 def wakati(text, result=[]) vn = impl(text, result) txt = text.unpack("U*") while vn a = txt.slice(vn.start, vn.length).pack("U*") result.push(a) vn = vn.prev end return result end |