问题标签 [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 投票
1 回答
172 浏览

nlp - 如何防止在计算 ngram 时贴现为零?

我正在使用 SRILM 的 ngram-count 命令行实用程序来尝试计算古腾堡语料库子集的三元模型。命令行是:

然而,我的一些台词被打折为 0(或者至少这就是我认为正在发生的原因。

如果我使用 -gt1min 0 或任何其他值并且实现了最小阈值,也会发生这种情况。我该如何防止这种情况发生?当我尝试将其转换为基于 n-gram 的 FST 并在输入句子中使用这些单词之一观察输入时,它会导致问题。

0 投票
1 回答
7304 浏览

autocomplete - Auto completion search with Solr using NGrams

I'm working on auto completion search with Solr using EdgeNGrams. If the user is searching for names of employees, then auto completion should be applied. That is, I want the results to be like a Google search. It's working fine for some searches.

File schema.xml:


Result:

It's working fine for me. When I search with michael f

I get a response like:

When I search with michael f then, I should get michael foret only. Data coming starts with f. Is there anything wrong in my configuration settings in Solr?

0 投票
1 回答
918 浏览

solr - 使用 Solr 的 NGramFilterFactory 进行相似性搜索

我正在尝试使用 Solr 中的 NGramFilterFactory(在 Rails 中使用 Sunspot)来查找类似的标题。我设法向我的 solr schema.xml 添加了一个新字段,如下所示:

由于我在 rails 应用程序中使用 sunpsot,因此通过动态字段将新字段添加到 sunspot。这一切都奏效了,我现在可以使用 NGramFilterFactory 搜索我的模型。我不确定的是,如何配置 solr 以搜索类似的标题。以下是我的具体问题:

  1. 当我尝试查询相似的标题时,使用 dismax 查询解析器是否有意义?
  2. (Minimum 'Should' Match)参数如何帮助我找到相似的标题?
  3. 基于我究竟会选择ngram min。和最大。尺寸?

感谢您的任何反馈。

0 投票
1 回答
3566 浏览

hadoop - 蜂巢 ngram 停用词列表?

虽然被列为示例用例之一......我还没有找到从 Hive n-gram 中过滤掉垃圾词(and、or 等)的示例。

有任何想法吗?谢谢!

0 投票
1 回答
1194 浏览

python - 从 FASTA 文件中计算二氨基酸频率(Bigram 频率)

给定大量的 FASTA 文件(用于分泌肽的各种生物的肽组),我如何使用 Python(或 Matlab)读取 FASTA 文件(来自 UNIProt),并计算每个氨基酸的频率,和氨基酸“双”配对?

(IE - 输出应该有每个单独氨基酸的百分比(22 个字母/字符中)和氨基酸配对的频率。

实际上,我想计算字母对的二元组(或 n-gram,如果易于实现)频率。

在 FASTA 文件中,这 22 个氨基酸分别由一个唯一的字母表示,每个蛋白质的名称在其行前以 > 开头。(已经解析过了,所以只剩下相关的字符)

文件样本:

FFKA

FLRN

MTTVSYVTILLTVLVQVLTSDAKATNNKRELSSGLKERSLSDDAPQFWKGRFSRSEEDPQ FWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQFWKGRFSDPQ FWKGRFSDGTKRENDPQYWKGRFSRSFEDQPDSEAQFWKGRFARTSSGEKREPQYWKGRF SRDSVPGRYGRELQGRFGRELQGRFGREAQGRFGRELQGRFGREFQGRFGREDQGRFGRE DQGRFGREDQGRFGREDQGRFGREDQGRFGREDQGRFGRELQGRFGREFQGRFGREDQGR FGREDQGRFGRELQGRFGREDQGRFGREDQGRFGREDLAKEDQGRFGREDLAKEDQGRFG REDIAEADQGRFGRNAAAAAAAAAAAKKRTIDVIDIESDPKPQTRFRDGKDMQEKRKVEK KDKIEKSDDALAKTS

非常感谢!

0 投票
1 回答
1840 浏览

ruby-on-rails - 带轮胎的 ElasticSearch 与“字符串”搜索中的 nGram 不匹配,仅匹配“文本”

所以我一直在尝试将 nGram 匹配添加到我的 ElasticSearch 索引中,但我遇到了以下问题。

执行标准字符串查询仅返回完全匹配。在特定测试字段上运行匹配查询会产生预期的 nGram 匹配。

我根据这些(1) 示例(2)为我的字段设置了 nGram 过滤器和分析器。映射代码如下:

弹性搜索查询

产生结果的查询:

产生 NO 结果的查询:

有没有办法让一般的 query_string 搜索来查看所有索引字段并匹配 ngram,而不必对特定列进行文本/匹配搜索?

0 投票
1 回答
577 浏览

lucene - 使用 Lucene ShingleFilter 提取 Lucene 中二元组的频率

如果 Lucene ShingleFilter 可用于将字符串标记为不同大小的 shingles 或 ngram,例如:

变成:

有谁知道这是否可以与其他分析器结合使用以返回找到的二元组或三元组的频率,例如:

会为“请除”返回 2 吗?

我应该补充一点,我的字符串是从数据库构建的,然后由内存中的 Lucene 索引并且不会持久化。不打算使用 Solr 等其他产品。

0 投票
0 回答
149 浏览

ruby-on-rails - 可以让思考狮身人面像优先考虑更大的 n-gram 匹配吗?

我正在使用thinking-sphinx 2.0.1 gem 和rails 2.3.8 和ruby 1.8.7。

我正在尝试提高我网站上的搜索质量,并且我希望能够优先考虑二元组和三元组匹配而不是不连续的多字匹配。

如果我的术语有误,这里有一个例子:对于查询“绿色番茄”,我希望“油炸绿色番茄三明治”被识别为比“绿豆和番茄沙拉”更好的匹配。

理想情况下,我想控制这种效果的强度,也许能够连续评估组成词的接近度(即匹配的词相距越远,整体匹配越弱)。

0 投票
6 回答
37121 浏览

python - 使用 Python 计算文件中的二元组(两个单词对)

我想使用 python 计算文件中所有二元组(相邻单词对)的出现次数。在这里,我正在处理非常大的文件,因此我正在寻找一种有效的方法。我尝试在文件内容上使用带有正则表达式 "\w+\s\w+" 的计数方法,但它并没有被证明是有效的。

例如,假设我想计算文件 a.txt 中的二元组数,该文件具有以下内容:

对于上述文件,二元组及其计数将是:

我在 Python 中遇到了一个 Counter 对象的示例,它用于计算 unigrams(单个单词)。它还使用正则表达式方法。

这个例子是这样的:

上面代码的输出是:

我想知道是否可以使用 Counter 对象来获取二元数。除了 Counter 对象或正则表达式之外的任何方法也将受到赞赏。

0 投票
1 回答
1663 浏览

lucene - 获取 ngram 频率时,Lucene 输出中带有停用词的下划线

我目前正在为用户提供在过滤 ngram 频率的文本正文时是否包含停用词的选项。通常,这样做如下:

stopWords 设置为要包含在 ngram 中或从中删除的完整单词列表。this.getnGramLength()); 仅包含当前 ngram 长度,最多为三个。

如果我在为 trigrams 过滤文本“卫星肯定掉到地球”中使用停用词,则输出为:

但是,如果我不对三元组使用停用词,则输出是这样的:

为什么我看到下划线?我会想到看到简单的一元组,“卫星坠落”,“坠落地球”和“卫星坠落地球”?绝对在我使用的停用词集中。

我可以用下划线过滤掉结果,但是......