文字認識結果から名詞のみを抽出する
きっぷをOCRかけた結果から、「発駅は国府である」という情報を抽出したい、で終わったのが前回。
駅名は名詞。
なので、
認識結果から名詞を抽出
↓
名詞の中から駅名を抽出
↓
きっぷの位置情報から発駅・着駅を判定
とするとよさそう。
人間の目の動きもそんな感じの気がするし。
じゃあ、どうやって名詞を抽出しようか?
ということで、自然言語処理をかけてみましょう。
今回使ってみるのは、NTT印のCOTOHA API。
この中の構文解析APIを使ってみます。
Google Vision APIで、発駅の国府が含まれている認識結果は
「FIRSTCLASSCARTICKET360.国府」でした。日本語として体をなしていませんが、果たして?
アカウント登録して、リファレンスに従って実行!
{
"result": [
{
"chunk_info": {
"id": 0,
"head": 1,
"dep": "D",
"chunk_head": 1,
"chunk_func": 1,
"links": []
},
"tokens": [
{
"id": 0,
"form": "firstclasscarticket",
"kana": "エフアイアールエスティーシーエルエーエスエスシーエーアールティーアイシーケーイーティー",
"lemma": "firstclasscarticket",
"pos": "名詞",
"features": [
"Undef"
],
"attributes": {}
},
{
"id": 1,
"form": "360",
"kana": "サンロクゼロ",
"lemma": "360",
"pos": "Number",
"features": [],
"dependency_labels": [
{
"token_id": 0,
"label": "compound"
},
{
"token_id": 2,
"label": "punct"
}
],
"attributes": {}
},
{
"id": 2,
"form": ".",
"kana": "",
"lemma": ".",
"pos": "句点",
"features": [],
"attributes": {}
}
]
},
{
"chunk_info": {
"id": 1,
"head": -1,
"dep": "O",
"chunk_head": 0,
"chunk_func": 0,
"links": [
{
"link": 0,
"label": "other"
}
]
},
"tokens": [
{
"id": 3,
"form": "国府",
"kana": "コクフ",
"lemma": "国府",
"pos": "名詞",
"features": [],
"dependency_labels": [
{
"token_id": 1,
"label": "nmod"
}
],
"attributes": {}
}
]
}
],
"status": 0,
"message": ""
}
お、とりあえず「国府」が「名詞」と判定されましたね。
(「firstclasscarticket」これも名詞と判定されているけど。。。)
意味を成していない文字列から名詞の抽出ができました。
さて、次のステップへ。
※ 試してみたい自然言語処理エンジンのメモ