小编ily*_*eck的帖子

使用NLTK进行语义分析

我正在尝试使用NLTK语音解析语音导航命令,例如"去旧金山","给我指向123 Main Street"等等.

这可以通过一个相当简单的CFG语法来完成,例如

S -> COMMAND LOCATION
COMMAND -> "go to" | "give me directions to" | ...
LOCATION -> CITY | STREET | ...
Run Code Online (Sandbox Code Playgroud)

问题是这涉及非原子(超过一个单词长)的文字,例如"转到",NLTK似乎没有设置(如果我错了,请纠正我).解析任务将标记作为先决条件,并且所有标记器似乎始终标记单个单词.所以,我的选择似乎是:

a)定义一个自定义标记器,它可以将非语法标签分配给单词序列而不是单个单词(例如,"转到":"命令").b)使用特征来增强语法,例如:

COMMAND -> VB[sem='go'] P[sem='to'] | ...
Run Code Online (Sandbox Code Playgroud)

c)使用chunker提取像COMMAND这样的子结构,然后将解析器应用于结果.NLTK是否允许chunker-> parser级联?

其中一些选项似乎令人费解(黑客).有好办法吗?

python parsing nlp chunking nltk

5
推荐指数
1
解决办法
3273
查看次数

标签 统计

chunking ×1

nlp ×1

nltk ×1

parsing ×1

python ×1