计算形容词频率的技巧

时间:2012-01-16 01:31:08

标签: full-text-search nlp data-mining

我需要在一大组客户支持评论中计算一组给定形容词的单词频率。但是我不想包括被否定的那些。

例如,假设我的形容词列表是:[有帮助,知识渊博,友好]。我想确保“友好”不算在“代表不是非常友好”这样的句子中。

我是否需要对文本进行完整的NLP解析,或者是否有更简单的方法?我不需要超高精度。

我对NLP并不熟悉。我希望有一些没有如此陡峭的学习曲线并且处理器密集程度不高的东西。

由于

2 个答案:

答案 0 :(得分:2)

这取决于您的数据来源。如果句子来自某种生成器,你可以自动拆分它们。否则你需要NLP,是的。

正确解析自然语言几乎是一个悬而未决的问题。它主要用于英语,特别是因为英语句子倾向于坚持SVO顺序。例如德语在这里非常讨厌,因为不同的单词顺序传达不同的重点(因此可以传达不同的含义,特别是在使用反讽时)。此外,德语更倾向于使用从属条款。

NLP显然是要走的路。至少需要一些基本的解析器。这也取决于你的任务:你需要确保每一个都是正确的,还是一个足够好的概率方法?可以将“困难”的病例丢弃或喂给人类进行审查吗?等

答案 1 :(得分:2)

如果你想要的只是形容词频率,那么问题就相对简单了,而不是一些残酷的,不那么好的机器学习解决方案。

Wat do?

对您的文字进行POS标记。这会使用词性标注对您的文字进行注释,因此您将获得95%或更高的准确率。您可以使用Stanford Parser online标记文字以获得感受。解析器实际上也为您提供了语法结构,但您只关心标记。

您还要确保句子正确分解。为此你需要一个句子破坏者。这包括在斯坦福解析器等软件中。

然后只需分解句子,标记它们,并使用标签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

enter image description here