前提・実現したいこと
CaboChaをつかって係り受け関係にある単語とその品詞を取得したいと思っています.
以下のコードを使って進めようと思っています.
このコードでは単語を取得できるのですが,その品詞をどのように取得したらよいかわかりません.
どなたかご教授いただけないでしょうか.
該当のソースコード
Python3
1import CaboCha 2 3c = CaboCha.Parser() 4 5sentence = "太郎はこの本を二郎を見た女性に渡した。" 6 7tree = c.parse(sentence) 8 9# 形態素を結合しつつ[{c:文節, to:係り先id}]の形に変換する 10chunks = [] 11text = "" 12toChunkId = -1 13for i in range(0, tree.size()): 14 token = tree.token(i) 15 text = token.surface if token.chunk else (text + token.surface) 16 toChunkId = token.chunk.link if token.chunk else toChunkId 17 # 文末かchunk内の最後の要素のタイミングで出力 18 if i == tree.size() - 1 or tree.token(i+1).chunk: 19 chunks.append({'c': text, 'to': toChunkId}) 20 21# 係り元→係り先の形式で出力する 22for chunk in chunks: 23 if chunk['to'] >= 0: 24 print(chunk['c'] + " → " + chunks[chunk['to']]['c'])
試したこと
token.featureで品詞などの情報がとれることはわかりました.
しかし,係り元と係り先の単語の区別をどうしたらいいかわかりません.
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー