使用NLP自动清理用户生成的内容?

时间:2014-04-06 22:11:19

标签: algorithm language-agnostic nlp semantics

是否可以使用NLP自动改善用户生成的内容?

目标是采取一个糟糕的UGC句子,如:

no low beams or running lights..bulbs ok and high beams work!!!

并尝试将其改进为:

No running lights or low beams. Bulbs are alright and the high beams are working!

非常感谢任何建议。

2 个答案:

答案 0 :(得分:0)

有可能。

首先,您必须解析句子并提取词性标签。为此,我推荐斯坦福解析器(我确实鼓励你寻找替代方案)。

为了更好地理解我的答案,请在斯坦福大学解析器的在线版本中键入第一句:http://nlp.stanford.edu:8080/corenlp/process

转到“折叠的CC处理的依赖关系”并查看依赖关系树。

从本质上讲,您需要做的是在依赖关系树中找到一个模式,然后相应地修改它。例如,在这种情况下,您必须找到ok <- [amod] <- beams <- [dep] <- bulbs,检查bulbs是否为复数,并将ok替换为are all right。如果bulbs bulb (单数),则必须将其替换为is all right

问题是你必须花费大量时间编写规则来发现依赖树中的模式,甚至花费更多时间以你想要的方式处理它们。

更大的问题是默认情况下句子不干净,这使得解析器很难相应地解析它。

对于您提供的示例,如果ok之前的单词是单数/复数的名词,则只需将is / are all right替换为{{1}},就可以使用不太健壮但更简单的解决方案。不同之处在于您不会使用依赖树,但我觉得这很容易出错。我也不确定它可以扩展到其他示例,而不仅仅是你提供的那些(因为它们几乎相同)。

答案 1 :(得分:0)

这是一个开放的研究问题。人们意识到,在分析推文,youtube评论等时,规范化非常有用。

在研究层面,这是我发现的第一篇文章:Normalization of Dutch User-Generated Content

检查他们的参考文献,还有:A Phrase-based Statistical Model for SMS Text Normalization。他们似乎从机器翻译的角度来看问题 - 从用户生成的内容翻译成适当的英语。

在更实际的层面上,我没有尝试过很多东西,我一直在使用的是GATE's twitter module。他们有一个规范化算法,但我认为它非常简单 - 只需替换像&#34; idk&#34;用&#34;我不知道&#34;。