自然言語の構文解析

自然言語の構文解析

句構造解析
どのように違うのだろう?

ふりがな文庫ラボ https://lab.furigana.info/dpnd/
このページで係り受け解析を試すことができる。

Python CaboCha ライブラリ

構文木のフォーマットとして、NLCST がある。Natural Language Concrete Syntax Tree
NLCST は係り受け解析の構文木ではない。
ちなみに、NLCST は UNIST を継承している。Universal Syntax Tree

Node.js の係り受け解析器として nlcst-parse-japanese がある。
Python では、また別のライブラリを使う。
読点「、」が名詞扱いになっているのが変かも。
正しくは Punctuation Node のはず。
どうやら係り受け解析とは違っている。
「すもももももももものうち。」が「すももも→ももも→ももの→うち。」と解析されている。
kuromoji.js による形態素解析の結果を NLCST フォーマットにするライブラリだった。 https://efcl.info/2017/10/31/nlp-pattern-match/

CYKアルゴリズム
構文解析の基本らしい。

PCFG(確率的文脈自由文法)アルゴリズム
CYK の派生アルゴリズム?
かろうじての Node.js 実装 https://github.com/lacolaco/pcfg_js
Fork して npm ライブラリとして仕上げた。 https://github.com/hata6502/pcfg_js
やはり自然言語処理の分野は Python が優勢か。

構文解析の内部実装を勉強できそうな資料
Powered by Helpfeel