问题标签 [n-gram]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
2074 浏览

autocomplete - 通过 shingles 和 termvector 组件自动完成

实现类似 Google 的自动完成的方法之一是在 Solr 1.4 中结合 shingles 和 termvector 组件。

首先,我们使用 shingles 组件生成所有 n-gram 分布,然后使用 termvector 获得最接近用户术语序列的预测(基于文档频率)。

架构:

Solr 配置:

通过上述设置,我需要将停用词放在 n-gram 边缘的任何位置,并将它们保留在 n-gram 序列中。

假设从“印度和中国”序列中,我需要以下序列:

并跳过其余部分。

是否可以与其他 Solr 组件/过滤器结合使用?

UPD:这是 Lucene 4 中一种可能的解决方案(应该可以连接到 SOLR):

“难道你不能制作一个自定义停止过滤器,只删除开头(看到的第一个标记)或输入结束(之后没有看到非停用词标记)的停用词吗?它需要一些缓冲/状态保持(捕获/恢复状态)但它似乎可行?” ——迈克尔·麦坎德利斯

来自:http ://blog.mikemccandless.com/2013/08/suggeststopfilter-carefully-removes.html

0 投票
2 回答
662 浏览

php - 如何找出一段文本中最常用的 2 个单词组合?

如何从一段文本中找出我最常用的两个单词是什么?换句话说,是否有一个在线或离线(或代码)工具,我可以在其中复制和粘贴文本,它会输出我最常用的两个词频,例如:

从最常用到最少:

“猫” 2.9% “她说” 1.8% “去” 1.2%

谢谢

0 投票
2 回答
7240 浏览

n-gram - ElasticSearch n-gram tokenfilter 未找到部分单词

我一直在为我的一个新项目使用 ElasticSearch。我已将默认分析器设置为使用 ngram tokenfilter。这是我的 elasticsearch.yml 文件:

我创建了一个新索引并向其中添加了以下文档:

但是,当我使用查询text:hreetext:ive任何其他部分术语进行搜索时,ElasticSearch 不会返回此文档。只有当我搜索确切的术语(如text:two)时,它才会返回文档。

我还尝试更改配置文件,以便 default_search 也使用 ngram 令牌过滤器,但结果是相同的。我在这里做错了什么,我该如何纠正?

0 投票
1 回答
4292 浏览

java - Android & 模糊匹配、n-gram 和 Levenshtein 距离

我正在构建一个 Android 应用程序,它接受一个字符串输入并使用 Google API 返回一个排序的书籍列表。

我正在寻找一种方法来比较用户输入的开放式字符串与列表中的第一项,以查看他们输入的内容是否“可能”是一本书。我有大量关于这本书、书名、作者、描述等的信息,所以我可以搜索任何部分。

一个例子是:

解决此问题的最佳方法是什么?我已经查看了 levenshtein 距离,但认为它不适用于这种开放式输入,n-gram 似乎是一个很好的方法,或者模糊匹配。

还有其他想法吗?

0 投票
1 回答
499 浏览

java - 在 Java 中在很短的时间内搜索一个非常大的 ARPA 文件

我有一个将近 1 GB 的 ARPA 文件。我必须在不到 1 分钟的时间内完成搜索。我已经搜索了很多,但我还没有找到合适的答案。我想我不必阅读整个文件。我只需要跳转到文件中的特定行并阅读整行。ARPA 文件的行长度不同。不得不提的是,ARPA 文件具有特定的格式。

文件格式

正如您在示例文件中看到的,我有 19 行 1-gram、234 行 2-gram 和 1013 行 3-gram。我将行的字符串部分提供给程序并获取字符串左侧和右侧的数字。输入字符串可以帮助我知道我必须在文件的哪个部分进行搜索。我必须找到一种不完全读取文件的方法,因为我的文件非常大,读取整个文件需要很多时间。我认为不使用索引文件并访问整行就跳转到文件中的特定行是一个好方法。

如果你能帮助我完成我的任务,那就太好了。

0 投票
1 回答
1175 浏览

speech-recognition - 狮身人面像 4 损坏的 ARPA LM?

我有一个由kylm生成的 ARPA LM ,在运行 SPHINX 时,我得到了这个异常堆栈跟踪:

以下是 ARPA LM 的摘录:

PS后面有一个新行\end\

异常表示 SPHINX 在最后一行遇到了意外的 EOF(它不应该在那里遇到 EOF 吗??)

请任何帮助!

0 投票
1 回答
4476 浏览

python - 在 Python 中计算 n-gram 的逐点互信息 (PMI) 分数

我有大量的 n-gram 语料库和几个外部 n-gram。我想根据这个语料库(计数)计算每个外部 n-gram 的 PMI 分数。

是否有任何工具可以做到这一点,或者有人可以为我提供一段可以做到这一点的 Python 代码吗?

问题是我的 n-gram 是 2-gram、3-gram、4-gram 和 5-gram。所以计算 3 克或更多的概率真的很耗时。

0 投票
2 回答
7165 浏览

speech-recognition - 创建 50,000 字的 ARPA 语言模型文件

我想创建一个将近 50,000 字的 ARPA 语言模型文件。我无法通过将文本文件传递给 CMU 语言工具来生成语言模型。是否有任何其他链接可以让我获得这么多单词的语言模型?

0 投票
1 回答
1796 浏览

nlp - 哪里可以从维基词典下载多语言单词列表?

我想知道是否有从维基词典下载多语言单词列表的地方?

0 投票
2 回答
4868 浏览

java - 使用 java hashmap 进行 n-gram 建模

我需要对一组 n-gram(n 个单词的序列)及其上下文(出现在 n-gram 附近的单词及其频率)进行建模。我的想法是这样的:

然后,对于所有不同 n-gram 的计数,我使用另一个 Hashmap,例如

我在接收文本时添加它。问题是,当 n-gram 的数量超过 10,000 左右时,JVM 堆会填满(设置为最大 1.5GB),并且一切都变慢了。

有没有更好的方法来做到这一点,以避免这种内存消耗?此外,n-gram 之间的上下文应该很容易比较,我不确定我的解决方案是否可行。