Bigram模型来预测文本

问题描述 投票:0回答:1

我正计划实施二元模型模型来预测搜索文本。如果用户经常搜索“测试搜索词”,然后用户键入“测试”,则希望自动建议“测试搜索词”

我有搜索到的文本的数据列表。我正在尝试使用Bi-gram,即使用户键入“ Tast”,它仍应提供“ Test search word”。我正在用Java实现它。我正在寻找一个提供我所拥有的数据的库,当我通过键入文本的用户时,它应该提供预测。

经过研究,我发现下面的链接

https://www.javatips.net/api/Solbase-Lucene-master/contrib/analyzers/common/src/java/org/apache/lucene/analysis/shingle/ShingleFilter.java

https://opennlp.apache.org/docs/1.8.1/apidocs/opennlp-tools/opennlp/tools/ngram/NGramUtils.html

但是他们对我的情况没有帮助。任何人都可以请适合我目的的Java库信息,或者遇到这种情况的人?

machine-learning nlp n-gram
1个回答
0
投票

我正在考虑两种解决方案:

第一

  • 在MARISA(具有递归实现的StorAge的匹配算法)TRIE数据结构中为每个用户字符串查询编制索引
  • 准备一个Levenshtein距离测量方法来容忍错别字。

现在对每个新用户查询q,获取在MARISA TRIE中将您的查询q设置为prefix的所有字符串索引(在拼写公差之后)。

第二

使用Elasticsearch建议者

文档https://www.elastic.co/guide/en/elasticsearch/reference/7.5/search-suggesters.html#completion-suggester

请注意,建议功能的某些部分仍在开发中。

希望有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.