例如,假设我的形容词列表是:[有帮助,知识渊博,友好].我想确保“友好”不算在“代表不是非常友好”这样的句子中.
我是否需要对文本执行完整的NLP解析,或者是否有更简单的方法?我不需要超高精度.
我对NLP并不熟悉.我希望有一些没有如此陡峭的学习曲线并且处理器密集程度不高的东西.
谢谢
如果你想要的只是形容词频率,那么问题就相对简单了,而不是一些残酷的,不那么好的机器学习解决方案.笏呢?
在你的文字上做POS标记.这会使用词性标注对您的文字进行注释,因此您将获得95%或更高的准确率.您可以使用Stanford Parser online标记文本以感受它.解析器实际上也为您提供了语法结构,但您只关心标记.
你还想确保句子被正确分解.为此你需要一个句子破坏者.这包括像Stanford解析器这样的软件.
然后只需分解句子,标记它们,并使用标签ADJ或它们使用的任何标签计算所有内容.如果标签没有意义,请查找Penn Treebank标签集(Treebanks用于训练NLP工具,Penn Treebank标签是常用标签).
怎么样?
Java或Python是NLP工具的语言. Python,使用NLTK.它很容易,有很好的文档记录和很好理解.
对于Java,您可以使用GATE,LingPipe和Stanford Parser等.使用斯坦福分析器是一件彻底的痛苦,幸运的是,如果你选择走那条路,我已经遭受了痛苦.有关Stanford Parser的一些代码(在页面底部),请参阅我的google page.
Das all?
不,你可能也想要形容形容词 – 这就是你得到一个词的根形式:
汽车 – >汽车
我实际上无法想到形容词需要这种情况,但它可能会发生.当您查看输出时,如果您需要这样做,那将是显而易见的. POS标记器/解析器/等将为您提供词干(也称为lemmas).
更多NLP解释
见this question.