问题标签 [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.
postgresql - 有没有办法用整个短语 Postgres 做类似的三元组
现在使用 Postgres 和 pg_tgrm,如果我做任何相似性(严格的词、词或只是标准),它会根据词来做,所以查询“被毁了”将获得 1 的“毁坏”一词但更少的东西就像“被设计毁了”一样,有没有办法在整个短语上做到这一点。我尝试使用 FTS,但存在的问题是,除非您使用 'ruined | 'ruined by',否则根本不会匹配 'ruined'。通过'但使用 | 让秩序不再重要,这是完全可能的事情。谢谢
sql - 来自 FUNCTION args 的 PostgreSQL SET 配置
是否可以使用 SQL FUNCTION 中的 arg 来设置配置值?
我正在尝试做这样的事情,但它不适用于 PostgreSQL 10.12(配置的值必须是数字,而不是 arg):
这样做的目的是提高函数的性能,而不是使用类似的东西:
提前致谢!
python - 如何在 Django 3 中创建具有多列的 Trigram 索引
我已经使用 annotate 实现了 Trigram Similarity 搜索,它在结果方面给出了我想要的结果;但我的数据库中有 220,000 条记录,每次查询需要 5 多秒的时间,这太长了。
搜索包含 3 列,其中之一调用连接。如何添加索引或等效的 SearchVectorField 但 Trigram 可以加快我的查询速度?
请参阅下面的当前代码:
我曾尝试从各种帖子中创建自己的索引,但我对索引不太熟悉,而且我实现的每一个都对查询时间没有影响。
postgresql - 在 postgres 中创建不区分大小写的 trigram-index 的正确方法是什么?
......这是我应该做的事情吗?
根据我的简短测试,制作三元组索引并使用搜索
比
所以看起来我应该这样做,但我很惊讶我无法找出如何去做。
(我的测试数据相当同质 - 150 万行由 16 个重复的条目组成。我可以想象这可能会影响结果。)
这就是我期望它的工作方式(注意lower(name)
):
但这会返回0
。
任何一个
或者
工作,这让我相信索引中的三元组不是lower()
'd。我是否误解了这在引擎盖下是如何工作的?那里不能打电话lower
吗?
我注意到这
返回小写三元组:
所以我很困惑。
sql - postgresql中的三元相似度
我有一个包含两列、doc-id 和 doc-txt 的表。doc-txt 中的每个单元格包含一个文档的全文(大约 1000 个单词),并且 100k 文档在一个表中(100k 行)。我有一个关键字列表,我想在 doc-txt 中找到与每个关键字最相似的单词。PostgreSQL中的有效方法是什么?
python - 给定输入大小为 2 个单词,三元组预测下一个单词的行为应该是什么?
当输入中给出一个单词时,我的二元语言模型工作正常,但是当我给我的三元模型提供两个单词时,它的行为很奇怪,并预测下一个单词是“未知”。 我的代码:
对于 bi-gram 下一个词预测:
对于三元组:
我只想知道我应该在代码中的哪个位置进行更改,以便三元组可以预测给定输入大小为 2 个单词的下一个单词。
postgresql - 如何使用 Postgres 创建 trigram 或 ngram 单词
我正在尝试使用 Postgres 创建一个基于三元词的搜索。这个想法是实现一个简单化的did you mean
.
我想要一张带有三字词而不是字符串的表格。我确实知道 Postgres 为字符串(pg_tgrm)提供了三元组,但我想做到这一点:
三字词:
如何在查询中实现这一目标的最有效和最快的方法。
Select column from table -- transforming into the above
每一行?
我试过了:
但我不知道如何将交叉连接用于更高级的场景。
database - 如何从理论上搜索数据库中的三元组
我有一个(理论上的)数据库,我正在存储某些单词的三元组:
例子:
等等...以及文本字段中的许多其他单词...
如果我想搜索script,我会搜索 ALL:
但是,如果我想要“*script”或“script*” (在script之前或之后的任何内容) ,我会搜索什么?
示例:“ *脚本”
我应该得到这些词:[postscript, javascript, vscript, pscript]...等
或“脚本 *”
我应该得到这些词:[scriptor, scripting, scriptly]...等
这不是任何特定的数据库、SQL 或其他;我只是想了解使用 Trigrams 背后的理论,以及可以用它们做什么。
python - 如何获得文本数据中三元组的确切频率?
我想知道如何获得三元组的确切频率。我认为我使用的功能更多是为了获得“重要性”。这有点像频率,但不一样。
需要明确的是,三字组是连续 3 个单词。标点符号不会影响三元组,至少我不想。
我对频率的定义是:我想要三元组的评论数量,至少一次。
以下是我通过网络抓取获取数据库的方法:
这是我用来获得我的功能comms_clean
:
这是我的数据库的一些行:
这里是我用来获取数据库中三元组频率的函数:
这是这行代码的结果:
让我向您展示它似乎不一致,但数量很少。我将在上面展示我的图片的第 6 个三元组:
所以有了我的功能,我们有:
当我检查其中包含该三元组的评论数量时,我得到:
到目前为止还没有,但我宁愿有确切的数字。
所以我想知道:如何获得那个三元组的确切频率?而不是某种重要性。重要性很好,不要误会我的意思,但我也想知道正确的数字。
我试过这个:
但我找不到如何连接循环中的所有计数器。
谢谢你。
编辑 :
python - nltk 在生成三元组时不插入句尾符号
我正在使用 Kneser-Ney 平滑从 Hobbit 生成文本。我的模型正在生成句子,但我相信还有改进的余地。
目前,我没有使用符号来标记句子的开头和结尾。当我尝试使用下面的代码插入它们时,我只能看到句子符号的第一个开头,但不知何故,对于其余的句子,符号没有插入。几乎就好像它根本没有检测到句子的结尾。
我尝试不将文本转换为小写,但它没有改变任何东西。
你能告诉我如何插入句末符号吗?
第一句话的输出如下所示。我期待“gold”一词之后的句尾符号。
('BOS', 'BOS', 'the')
('BOS', 'the', 'hobbit')
('the', 'hobbit', 'or')
('hobbit', 'or', 'there ')
('or', 'there', 'and')
('there', 'and', 'back')
('and', 'back', 'again')
('back', 'again', 'jrr')
('again', 'jrr', '.')
('jrr', '.', 'tolkien')
('.', 'tolkien', 'the')
('tolkien', 'the ', 'hobbit')
('the', 'hobbit', 'is')
('hobbit', 'is', 'a')
('is', 'a', 'tale')
('a', 'tale', 'of')
('tale', 'of', 'high')
('of', 'high', 'adventure')
('high', 'adventure', 'undertaken')
('adventure', 'undertaken', 'by')
('undertaken', 'by', 'a')
('by', 'a', 'company' ')承担', 'by', 'a') ('by', 'a', 'company')承担', 'by', 'a') ('by', 'a', 'company')
('a', 'company', 'of')
('company', 'of', 'dwarves')
('of', 'dwarves', 'in')
('dwarves', 'in', '搜索')
('in', 'search', 'of')
('search', 'of', 'dragon-guarded')
('of', 'dragon-guarded', 'gold')
('dragon-guarded ', '黄金', '.')
('黄金', '.', 'a')