问题标签 [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.
elasticsearch - ElasticSearch 搜索部分字母数字值
我有一个字符串字段,其值类似于PA2456U
orPA23U-RB
并且我想做部分匹配,以便我可以搜索PA24
并获得第一个结果,或者搜索PA23U-RB
并找到第二个结果(这将是一个完全匹配。
我尝试使用 ngram,但它忽略了数值,所以,如果我输入pa111
它会返回任何以pa
有关示例,请参见此要点。
这可能是一个单独的问题,或相关的,但搜索12345001
也应该匹配12345-001
谢谢
更新 我使用的最终分析器在这里:https ://gist.github.com/3803180
python - 用一个正则表达式匹配多个重叠的 n-gram
我正在尝试执行正则表达式来匹配文档中的多个 n-gram。我首先得到一个 n-gram 列表,我将它们编译成一个正则表达式,如下所示:
(将 n-gram 拆分为任何空白字符上的标记,重新转义这些标记并使用 '\s+'-es 加入它们(这样我就可以通过换行符、双空格、制表符等匹配 ngram),然后加入正则表达式带有“|”的 n-gram)
我的正则表达式如下所示:
现在,这在大多数情况下都可以正常工作,但是,当一个 n-gram 与另一个 n-gram 重叠时,只会找到一个匹配项:
有没有办法解决这个问题?返回文档中匹配的所有(子)字符串?
此外,速度/效率非常重要(我正在解雇数以万计的这些正则表达式),我可以做些什么来优化?我读过预编译正则表达式并没有多大作用,因为无论如何都会缓存“即时”编译的正则表达式,我可以采取任何(其他)明显的步骤来加速这些表达式吗?
database - Elasticsearch - River 和 nGrams
我正在使用带有河流插件的 ES,因为我正在使用 couchDB,并且我正在尝试使用 nGrams 进行查询。我基本上已经完成了我需要的所有事情,除了当有人输入空格时,查询无法正常工作。这是因为 ES 对查询的每个元素进行了标记,将其按空格分隔。
这是我需要做的:
查询字符串中的部分文本:
查询:“Hello Wor”响应:“Hello World,Hello Word”/排除“Hello,World,Word”
按我指定的标准对结果进行排序;
不区分大小写。
这是我在这个问题之后所做的:如何使用 ElasticSearch 搜索单词的一部分
然后,我将为排序添加一个映射:
我已经添加了我使用的所有信息,只是为了完整。无论如何,通过这种设置,我认为应该可以工作,每当我尝试获得一些结果时,该空间仍用于拆分我的查询,例如:
返回包含“Hello”和“Wor”的任何内容(我通常不使用括号,但我在示例中看到过它们,但结果看起来仍然非常相似)。
任何帮助都非常感谢,因为这让我非常烦恼。
更新:最后,我意识到我不需要 nGram。一个正常的索引就可以了;只需用“ AND ”替换查询的空格就可以了。
例子:
java - Java Lucene Ngram
我想使用 Lucene API 从句子中提取 ngram。但是,我似乎遇到了一个特殊的问题。在JavaDoc中有一个名为 NGramTokenizer 的类。我已经下载了 3.6.1 和 4.0 API,但我没有看到这个类的任何痕迹。例如,当我尝试以下操作时,我收到一条错误消息,指出找不到符号 NGramTokenizer:
在文档中,NGramTokenizer 似乎位于路径 org.apache.lucene.analysis.NGramTokenizer 中。我在电脑上的任何地方都看不到这个。似乎不太可能发生下载或其他杂项错误,因为 3.6.1 和 4.0 API 都会发生这种情况
- 如何获得 NGramTokenizer 类?
- 我将 lucene-core-3.6.1.jar 添加到我的项目中
python - 使用 Python 计算 N 克
我需要为包含如下文本的文本文件计算 Unigrams、BiGrams 和 Trigrams:
“仅在美国,囊性纤维化就影响了 30,000 名儿童和年轻人 吸入盐水雾可以减少充满囊性纤维化患者气道的脓液和感染,尽管副作用包括令人讨厌的咳嗽和刺鼻的味道。这就是结论本周发表在《新英格兰医学杂志》上的两项研究中的一项。”
我从 Python 开始并使用了以下代码:
http://www.daniweb.com/software-development/python/threads/39109/generating-n-grams-from-a-word
但它适用于一个单词中的所有 n-gram,当我想要它来自单词之间的 CYSTIC 和 FIBROSIS 或 CYSTIC FIBROSIS 时。有人可以帮我解决这个问题吗?
java - Java Lucene NGramTokenizer
我正在尝试将字符串标记为 ngram。奇怪的是,在NGramTokenizer的文档中,我没有看到将返回已标记化的单个 ngram 的方法。事实上,我只在 NGramTokenizer 类中看到两个返回字符串对象的方法。
这是我拥有的代码:
- 被标记化的 ngram 在哪里?
- 如何获得字符串/单词的输出?
我希望我的输出是这样的:这是,是,一个,测试,字符串,这是,是一个,一个测试,测试字符串,这是一个,是一个测试,一个测试字符串。
solr - 将字段更改为 Ngram,现在不返回任何结果
我将文本字段的架构映射更新为:
但是,在这样做并重新索引索引之后,对于任何查询字符串,我都没有得到任何搜索结果。如果我*
为 q 参数输入 a,我只会看到结果。
我的模式映射是完全错误的,还是我只是缺少一些简单的东西?
python - Python NLTK NGrams Error
I'm running a code to get the perplexity, number of ngrams from a text corpus. While doing it, I got a weird error saying:
The Code I am Running to get this is:
All the imports seem to be proper.
autocomplete - 每个 ActiveModel/Record 有多个映射?
假设我想在 BlogPosts 之类的东西上创建两个单独的索引,这样我就可以使用一个索引进行快速搜索(例如用于自动完成目的),然后使用另一个索引进行完整的搜索查询。
这是我可以用轮胎做的吗?所以像这样的东西(如果它有点原始,请原谅我)
回调知道从适当的索引中添加和删除新帖子的地方
python - 带有朴素贝叶斯分类器的 n-gram
我是 python 新手,需要帮助!我正在练习 python NLTK 文本分类。这是我在 http://www.laurentluce.com/posts/twitter-sentiment-analysis-using-python-and-nltk/上练习的代码示例
我试过这个
但是得到这个错误,为什么?