问题标签 [trigram]

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 回答
1570 浏览

postgresql - 带有 gin_trgm_ops 选项的 Postgresql BTREE_GIN 索引?

https://www.postgresql.org/docs/current/static/pgtrgm.html上,解释了如何使用带有 gin_trgm_ops 选项的特殊 GIN 索引来促进三元相似性算子的性能。

也有人说:

这些索引不支持相等或简单的比较运算符,因此您可能也需要一个常规的 B-tree 索引。

但是,还有 BTREE_GIN 扩展,它应该允许 GIN 索引用作 BTREE 索引的替代品。https://www.postgresql.org/docs/current/static/btree-gin.html

我的问题是:如果我安装 BTREE_GIN 扩展,可以使用 pg_trgm GIN 索引(带有 gin_trgm_ops 选项)作为 BTREE 索引的替代品吗?它是否结合了 BTREE_GIN 和 trigram GIN 索引的属性,或者连接和相等表达式等仍然需要额外的 BTREE 索引?

0 投票
0 回答
292 浏览

postgresql - 通过最常用的单词自动完成 - postgres 还是 lucene?

我们正在使用 Postgres 及其全文功能在我们的系统中搜索文档(帖子内容),并且效果非常好。

对于自动完成,我们希望使用文档中使用的所有单词建立索引(字典?)并按最常用的单词进行搜索。我们将始终搜索一个词。我们永远不会搜索短语。

所以如果我写:

  • “第”

我将收到(假设我们文档中出现频率最高的单词):

  • “这个”
  • “那里”
  • “想法”
  • ...

如何用 Postgres 做到这一点?或者也许我们需要一些更高级的解决方案,比如 apache lucene / solr ?

postgres 全文搜索(提供词法)和 postgres trigrams 似乎都不适合这项工作。或者也许我错了?

我不想手动解析文本并忽略所有容易出错的英文停用词。Postgres 在构建词法索引时做得很好。但是除了词法,我们需要在没有规范化的情况下构建和搜索词词典

谢谢您的帮助

0 投票
1 回答
695 浏览

python - nltk.KneserNeyProbDist 为大多数三元组提供 0.25 的概率分布

我正在使用nltk进行语言建模我将这篇文章用作mypet.txt文件中的语料库。对于大多数三元组,我得到 0.25 Kneser Ney 概率分布。我不知道为什么。这样对吗?为什么要这样做?这是我的word_ngram.py文件:

这是我处理 utf-8 字符的preprocessor.py文件:

这是我用来将 utf-8 char 替换为 ascii char 的utf_to_ascii.json文件:

这是几个三元组的示例输出:

0 投票
1 回答
1376 浏览

python - 如何在nltk python中计算三元组的conditional_frequency_distribution和conditional_probability_distribution

我想为我的语言模型计算条件概率分布,但我不能这样做,因为我需要我无法生成的条件频率分布。这是我的代码:

但我收到此错误:

这是我处理 utf-8 字符的 preprocessor.py 文件:

这是我用来将 utf-8 char 替换为 ascii char 的 utf_to_ascii.json 文件:

有人可以建议我如何计算 NLTK 中三元组的条件频率分布?

0 投票
1 回答
970 浏览

pg-search - pg_search trigram 扩展不起作用

Rails5,我已将其安装在数据库中

并在初始化程序中:

我只用:trigram(不是:tsearch)尝试过,即使在 db:reset 和 rake pg_search:multisearch:rebuild[AllModels] 之后也不起作用。

我错过了一步吗?

0 投票
2 回答
236 浏览

python - 如何在python中将当前字典嵌套到另一个字典中?

我有一个默认字典,它具有 3 层嵌入,稍后将用于三元组。

然后,我有一个 for 循环遍历文档并创建每个字母的计数(以及 bicounts 和 tricounts)

我想添加另一层,以便我可以指定字母是辅音还是元音。

我希望能够在辅音与元音上运行我的二元组和三元组,而不是在字母表的每个字母上运行,但我不知道该怎么做。

0 投票
1 回答
211 浏览

python - Brown Corpus 不使用 HMM 和 TnT 标记器产生结果

关于词性标注的最动态的语料库是树库语料库。然而,Brown Corpus Just 拒绝使用 HMM 和 TnT 标记器产生结果。对此有何解释?

0 投票
0 回答
354 浏览

postgresql - 可以直接使用 PostgreSQL Trigram 索引 pg_trgm 吗?

我想使用我自己的函数来生成三元向量,用于索引和查询,这可能吗?

它通常是如何工作的:

我想绕过这pg_text_to_trigram_vector一步,直接提交我自己生成的不同三元向量来索引和查询

或者我可以定义自己的函数,PostgreSQL 将使用它来生成三元向量,这也可以

那可能吗?

例子:

我想提交 3 个向量到索引

然后用其他向量查询它

基本上它与pg_trgm绕过三元组生成步骤相同。

0 投票
3 回答
7974 浏览

postgresql - PostgreSQL,三元组和相似性

只是在我的 Mac 上测试 PostgreSQL 9.6.2 并使用 Ngrams。假设酒厂领域有一个 GIN trigram 索引。

相似性的限制(我知道这已被弃用):

我正在 2,3M 行表上构建三元组搜索。

我的选择代码:

我的结果(我的 Mac 上 329 毫秒):

好吧,我不明白在这种情况下,“Chateau blanc”如何与“Chateau Cheval Blanc”有相似之处?我知道这两个词是完全相同的“chateau”和“blanc”,但没有其他词“cheval”。

还有为什么“Chateau ChevL Blanc”是第一名?缺少一个字母“a”!

好吧,我的目标是在我给出酒厂名称时匹配所有可能的重复项,即使它拼写错误。我错过了什么 ?

0 投票
1 回答
938 浏览

postgresql - Postgres 名称搜索

我有一个很小的数据集(约 1000 行)。每行都有一个用户名、名字和姓氏。我可以通过使用pg_trgm并连接三个字段以及每个字段之间的两个空格来对这三个字段进行模糊搜索吗?或者,是否有更好的方法来搜索这组用户,使用三元组或任何其他方法?