我正在尝试制作一个大量使用 pos 标记的应用程序。但对我来说,nltk 的 pos 标记功能似乎不符合标准 - 例如:
import nltk
text = "Obama delivers his first speech."
sent = nltk.sent_tokenize(text)
loftags = []
for s in sent:
d = nltk.word_tokenize(s)
print nltk.pos_tag(d)
结果 :
akshayy@ubuntu:~/summ$ python nn1.py [('Obama', 'NNP'), ('delivers', 'NNS'), ('his', 'PRP$'), ('first', ' JJ'), ('speech', 'NN'), ('.', '.')]
与斯坦福 NLP 相比,这并不好。现在,当我有足够的时间和精力投入到 Python 环境中时,转向 Java 对我来说似乎并不实际。此外,与 java 相比,我更倾向于 C,因此 Python 也更接近于未来的使用。因此第一个问题是:1) 你真的认为 Java 更适合具有大量可用工具的 nlp 任务吗?我做了很好的研究,发现 java 有更大的社区致力于 nlp 任务。
2)相反,有没有什么好的方法可以创建我自己的句子解析器,然后是 pos 标记器,以便灵活地修改将来使用的任何语言。