繁体   English   中英

预测短语而不仅仅是下一个单词

[英]Predicting phrases instead of just next word

对于我们构建的应用程序,我们使用简单的单词预测统计模型(如Google自动填充 )来指导搜索。

它使用从大量相关文本文档中收集的一系列ngrams。 通过考虑先前的N-1个单词,它使用Katz退避建议按概率降序排列的5个最可能的“下一个单词”。

我们希望将其扩展为预测短语(多个单词)而不是单个单词。 但是,当我们预测短语时,我们宁愿不显示其前缀。

例如,考虑the cat的输入。

在这种情况下,我们想做出像the cat in the hat一样the cat in the hat预测,但不是the cat in而不是the cat in the cat in the

在此输入图像描述

假设:

  • 我们无法访问过去的搜索统计信息

  • 我们没有标记的文本数据(例如,我们不知道词性)

制作这类多字预测的典型方法是什么? 我们尝试过较长短语的乘法和加法加权,但我们的权重是任意的,适合我们的测试。

对于这个问题,您需要定义您认为有效完成的内容 - 然后应该可以提出解决方案。

在你给出的例子中,“帽子里的猫”比“猫中的猫”要好得多。 我可以将其解释为“它应该以名词结尾”或“它不应该以过于常见的词结尾”。

  1. 您已经限制了“标记文本数据”的使用,但您可以使用预训练模型(例如NLTK,spacy,StanfordNLP)来猜测词性,并尝试将预测限制为仅完成名词短语(或序列)以名词结尾)。 请注意,您不一定需要标记所有输入模型的文档,而只需标记您在自动完成数据库中保留的那些短语。

  2. 或者,您可以避免以停用词(或非常高频率的词)结尾的完成。 “in”和“the”都是几乎所有英文文档中出现的单词,因此您可以通过实验找到有助于过滤的频率截止(不能以超过50%的文档中出现的单词结尾)。 你也可以看一下短语 - 如果短语的结尾作为一个较短的短语显然更常见,那么标记它就没有意义,因为用户可以自己提出它。

  3. 最终,你可以创建一组标签好的和坏的实例,并尝试创建一个基于单词特征的监督重新排名 - 上述两个想法都可能是监督模型中的强大功能(文档频率= 2,pos标签= 1) 。 这通常是带有数据的搜索引擎可以做到的。 请注意,您不需要搜索统计信息或用户,只需要为几百个查询标记前5个完成项。 建立正式评估(可以以自动方式运行)可能有助于在将来尝试改进系统时。 任何时候你观察到一个糟糕的完成,你可以将它添加到数据库并做一些标签 - 随着时间的推移,监督的方法会变得更好。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM