我要写一个程序(用Java)来识别几个词性,如名词,形容词,动词等。该程序还应该识别数字(用数字表示,例如10)和用简单英语写的数字(十,百)等)等等。我不确定前进的方向是什么。有没有可用的图书馆?这只能用正则表达式完成吗?或者我需要学习NLP吗?
请建议前进的方向。
答案 0 :(得分:2)
(1)OpenNLP
(2)LingPipe
(3)Stanford NLP
上述所有3个(基于Java)都可以帮助您识别POS。
对于数字,请使用正则表达式。
答案 1 :(得分:1)
词性(POS)标记是一项非常标准的NLP任务。从理论上讲,你可以编写POS标记非常简单句子的正则表达式,你不可能用正则表达式模型获得合理的覆盖率或准确度。你可以在手工标记的训练集上很好地训练一个相当简单的HMM模型或判别标记器。
但是要标记特定的语料库,您不一定需要学习POS标记的所有细节并自己动手 - 学习使用现有的库可能就足够了(例如NLTK或Stanford NLP库)。
将文本数字表示转换为其阿拉伯语形式(或反之亦然)属于' text-normalization'的标签。正则表达式(或其他有限状态转换)可能在那里更有用,尽管如此,您可能希望在从头开始之前寻找满足您需求的现有解决方案。