是否可以使用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!
任何建议都将不胜感激。
最佳答案
这是可能的。
首先,你必须解析句子并提取词性标签。为此,我推荐斯坦福解析器(不过,我确实鼓励您寻找替代方案)。
为了更好地理解我的答案,请在stanford parser的在线版本中键入第一个句子: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
将是一个不太可靠但更简单的解决方案。不同的是,您不会使用依赖关系树,但我觉得这很容易出错。我也不确定它是否可以扩展到其他示例,而不仅仅是您提供的示例(因为它们几乎是相同的)。