问题标签 [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.
python - NLP算法“填写”搜索词
我正在尝试编写一种算法(我假设它将依赖自然语言处理技术)来“填写”搜索词列表。这种东西可能有一个我不知道的名字。这种问题叫什么,什么样的算法会给我以下行为?
输入:
输出:
基本上应该弄清楚,如果“Dolphin”出现,它几乎总是在“Dolphin Watching”或“Miami Dolphins”的二元组中。首选 Python 解决方案。
database-design - 以半可搜索但紧凑的格式存储文本
我想提取Google N-Gram 数据集以用于某些商品硬件。问题是这些小型服务器无法处理需要存储的数据大小。
这让我开始思考其他基于文本的大型系统(如 WordNET 或搜索引擎)如何处理这个问题。我想知道是否有一种方法可以规范化数据,但仍使其成为可搜索的格式?
回到 N-Gram,我的想法是将 1-Gram 中的所有单词与 ID 一起存储在数据库中。然后使用该 ID 在 +2 Gram 链中创建关系,就像在社交网络中跟踪朋友关系一样 - 两个 id 作为行。
有没有更有效的方法以紧凑的方式存储所有这些数据?
也许不是压缩文本,而是可以对单词对(或序列)进行散列处理,以实现更小的存储大小,同时仍然可以像密码一样进行搜索。
csv - 将 Google NGram 结果另存为 .csv
有没有一种简单的方法可以将 Google Ngram 结果 http://books.google.com/ngrams/保存 为 csv?
所以我得到一个像
等等?
我下载了他们的原始数据,但不知道如何处理。当我在 OpenOffice 中打开这些 csv 文件时,我什至看不到一个字。
database - 如何有效地存储大量 ngram?
我从十六进制形式的二进制项目中提取 4 克,这意味着我每个项目最多可以有 65535 克不同的克数。
我想将每个项目与它的克数及其频率相关联,但我对如何存储所有内容感到困惑——这是我的第一次数据挖掘经验,我对最佳实践和常用工具一无所知。
我本来想在关系数据库中构建一个大表,其模式类似于(ITEM-NAME, GRAM1, GRAM2... GRAM65535)
并在其中存储频率,但我可以看到这种方法由于列的数量而非常不切实际。
我知道那里必须有更好的解决方案,但我不知道在哪里看。
建议?
lucene - SOLR:NGramFilterFactory 的问题
我正在运行 SOLR 作为内部网的搜索引擎,其中包含超过 40000 个文档。我通过使用 copyField 指令将title
和keywords
字段复制到content
字段并仅对其进行索引来保持它非常简单。
从现在开始我们使用这个配置:
这工作得很好,但有人抱怨必须手动设置通配符。所以我NGRamFilterFactory
在分析器的最后一行添加了:
现在的问题是:使用旧配置,我曾经找到 7 个带有某个关键字('Sony')的文档。现在,只有 2 个。我完全刷新了索引并从头开始构建它。当我再次取出该行并重新索引文档时,它再次按预期工作。这让我想到了我的问题:
- FilterFactory 对我来说是正确的还是应该是标记器工厂?如果分词器:它可以在过滤器之后运行吗?
- 我在 75 个文档中将文档添加为 xml,并在最后进行提交。是否应该有更多的提交?
- 还有一个我现在忘记了.. grr
提前致谢!
r - 我需要什么算法来找到 n-gram?
什么算法用于查找 ngram?
假设我的输入数据是一个单词数组和我想找到的 ngram 的大小,我应该使用什么算法?
我要求代码,优先考虑 R。数据存储在数据库中,因此也可以是 plgpsql 函数。Java 是一种我更了解的语言,所以我可以将它“翻译”成另一种语言。
我并不懒惰,我只是要求代码,因为我不想重新发明轮子试图做一个已经完成的算法。
编辑:重要的是要知道每个 n-gram 出现了多少次。
编辑 2:N-GRAMS 有一个 R 包吗?
scala - 如何在scala中生成n-gram?
我正在尝试在scala中编写基于n-gram的分离新闻算法。如何为大文件生成 n-gram:例如,对于包含“蜜蜂是蜜蜂中的蜜蜂”的文件。
- 首先,它必须选择一个随机的 n-gram。例如蜜蜂。
- 然后它必须寻找以 (n-1) 个单词开头的 n-gram。比如蜜蜂的。
- 它打印这个 n-gram 的最后一个单词。然后重复。
你能给我一些提示吗?带来不便敬请谅解。
python - 使用 python 的 unigram
我正在尝试从文本文件生成 unigram。但只显示给定文件第一行的二元组。我想为文件中的所有句子显示 unigram。
为什么它没有显示句子的一元组,我怎样才能把它变成一个二元组?
提前致谢。
data.txt 是包含句子的文本文件。它有两句话——
我得到输出:
代码
sql - 使用 SQL 查询生成 n-gram 表
我正在尝试使用 JavaScript 客户端实现模糊搜索,以搜索 SQL 数据库中包含的记录的较大数据库(大约 300 个项目)。我的限制是不可能对数据库执行实时查询——我必须在夜间批处理作业期间将“索引”生成为平面文件。因此,从一个看起来像这样的数据库开始:
我需要在单个查询中创建如下内容:
等等,错别字无法忍受。这里的规则是 ''n' 是第一列中字符串的长度,只有 az 和 _ 是有效字符,任何其他字符都被规范化为小写,或映射到 _,由 n-gram 分组子句可以应用于表。因此,我希望获得一个表格,使我能够快速查找特定的 n-gram 并获得包含该序列的所有行的 ID 的列表。我不是一个足够聪明的 SQL cookie 来解决这个问题。你能?
python - 从列表中的句子生成二元语法
我有一个列表,其中包含从测试段落中拆分出来的句子。我正在尝试从这个句子列表中生成二元组。但我得到:
我的代码:
......