go言語で形態素解析を行う
https://github.com/ikawaha/kagome
を利用する
```
go get -u github.com/ikawaha/kagome/...
```
コードの例
```
package main
import (
"fmt"
"strings"
"github.com/ikawaha/kagome/tokenizer"
)
var words = []string{
"オマーン国際空港",
"エロマンガ島",
"キンタマーニ高原",
"マンビラ高原",
"写生大会",
"ドビュッシー",
"B地区",
"アナリスト",
"菊紋",
"多目的ホール",
"メスシリンダー",
"オスシリンダー",
}
func main() {
t := tokenizer.New()
for _, v := range words {
fmt.Printf("===== %s =====\n", v)
tokens := t.Tokenize(v)
for _, token := range tokens {
if token.Class == tokenizer.DUMMY {
continue
}
features := strings.Join(token.Features(), ",")
fmt.Printf("%s\t%v\n", token.Surface, features)
}
}
}
```
結果
````
===== オマーン国際空港 =====
オマーン 名詞,固有名詞,地域,国,*,*,オマーン,オマーン,オマーン
国際 名詞,一般,*,*,*,*,国際,コクサイ,コクサイ
空港 名詞,一般,*,*,*,*,空港,クウコウ,クーコー
===== エロマンガ島 =====
エロ 名詞,一般,*,*,*,*,エロ,エロ,エロ
マンガ 名詞,一般,*,*,*,*,マンガ,マンガ,マンガ
島 名詞,接尾,地域,*,*,*,島,トウ,トー
===== キンタマーニ高原 =====
キンタマーニ 名詞,一般,*,*,*,*,*
高原 名詞,一般,*,*,*,*,高原,コウゲン,コーゲン
===== マンビラ高原 =====
マン 名詞,一般,*,*,*,*,マン,マン,マン
ビラ 名詞,一般,*,*,*,*,ビラ,ビラ,ビラ
高原 名詞,一般,*,*,*,*,高原,コウゲン,コーゲン
===== 写生大会 =====
写生 名詞,サ変接続,*,*,*,*,写生,シャセイ,シャセイ
大会 名詞,一般,*,*,*,*,大会,タイカイ,タイカイ
===== ドビュッシー =====
ドビュッシー 名詞,固有名詞,人名,姓,*,*,ドビュッシー,ドビュッシー,ドビュッシー
===== B地区 =====
B 名詞,固有名詞,組織,*,*,*,*
地区 名詞,一般,*,*,*,*,地区,チク,チク
===== アナリスト =====
アナリスト 名詞,一般,*,*,*,*,アナリスト,アナリスト,アナリスト
===== 菊紋 =====
菊 名詞,一般,*,*,*,*,菊,キク,キク
紋 名詞,一般,*,*,*,*,紋,モン,モン
===== 多目的ホール =====
多 接頭詞,名詞接続,*,*,*,*,多,タ,タ
目的 名詞,一般,*,*,*,*,目的,モクテキ,モクテキ
ホール 名詞,一般,*,*,*,*,ホール,ホール,ホール
===== メスシリンダー =====
メスシリンダー 名詞,一般,*,*,*,*,メスシリンダー,メスシリンダー,メスシリンダー
===== オスシリンダー =====
オス 名詞,一般,*,*,*,*,オス,オス,オス
シリンダー 名詞,一般,*,*,*,*,シリンダー,シリンダー,シリンダー
````
0コメント