问题标签 [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 - NLTK 使计算单词的二元组变得容易。字母呢?
我已经在网上看到了大量关于 python NLTK 如何让计算单词的二元组变得容易的文档。
字母呢?
我想做的是插入字典,让它告诉我不同字母对的相对频率。
最终,我想做某种马尔可夫过程来生成看起来可能(但假的)单词。
python - 在python nltk中计算n-gram频率
我有以下代码。我知道我可以使用apply_freq_filter
函数来过滤掉少于频率计数的搭配。但是,在我决定为过滤设置什么频率之前,我不知道如何获取文档中所有 n-gram 元组(在我的情况下为双元组)的频率。如您所见,我正在使用 nltk collocations 类。
machine-learning - 情感分析/分类任务中二进制与 tfidf Ngram 特征的比较?
又是一个简单的问题:使用 Ngrams(unigram/bigrams 等)作为简单的二元特征,还是在 ML 模型(如支持向量机)中使用它们的 Tfidf 分数来执行情绪分析或文本分类/分类等 NLP 任务更好?
solr - solr NGramFilterFactory 不适用于数字
我不知道这是错误还是功能,但 Solr NGramFilterFactory 不适用于数字。
这是我的字段类型:
当我在 Solr 管理界面中使用分析器并输入诸如“业务”之类的单词时,它工作正常,但是当我写数字(例如 12345678)时,它不起作用。
我想要的是搜索部分电话号码。如果我有 123456789 作为电话号码,并且我搜索 456 或 6789,我应该会成功。
有任何想法吗?
python - 自然语言处理 - 类似于 ngram
我目前正在从事一个 NLP 项目,该项目试图区分上下文中的同义词(从 Python 的 NLTK 和 WordNet 接收)。我研究了很多 NLP 概念,试图找到我想要的东西,我找到的最接近的东西是 n-gram,但它并不完全适合。
假设我试图找到动词“盒子”的正确定义。“盒子”可以表示“战斗”或“包裹”;然而,在文本的其他地方,出现了“戒指”或“战斗机”这个词。据我了解,n-gram 将是“box fighter”或“box ring”,这作为一个短语相当可笑,而且不太可能出现。但是在概念图上,“盒子”动作可能与“环”相关联,因为它们在概念上是相关的。
n-gram 是我想要的吗?这个还有别的名字吗?关于在哪里寻找检索此类关系数据的任何帮助?
感谢所有帮助。
n-gram - ngram建模,如何进行交叉验证
我试图了解交叉验证在 ngram 模型的上下文中是如何工作的。我知道该模型本质上列出了训练中语料库中每个 ngram 的概率。但是,交叉验证如何工作?我应该调整的参数是什么?我知道我想在验证集上获得 100% 的准确度,但我不确定我需要调整什么才能使其正常工作。它与平滑有关吗?
performance - 从大文件访问 n-gram 频率
我对自然语言处理和 Java 编程很陌生。我有一个非常大的文本文件,其中包含 ngram 和相关频率(aaprox. 250 mb)。我需要在程序运行时获取频率值,给定一个 ngram。文件中提供的 ngram 频率如下(仅作为示例):
我尝试在启动时通过填充一个哈希集来读取文件……但一个 18mb 的文件花了将近 1500 毫秒(使用 System.currentTimeMillis() 测试)。现在我正在考虑对 n-gram 计数进行排序并将 250mb 文件分成小块并填充一个列表并通过在单独的索引中索引文件集并引用它来按需获取频率。
但是,我不确定是否有另一种更简单或更有效的方法来做到这一点。请让我知道是否有更好的方法来做到这一点。(最好不使用任何脚本或库......)。谢谢你们。
search - 我可以在 Solr 中保护短词免受 n-gram 过滤器的影响吗?
我见过这个关于在 Solr 中搜索短词的问题。我想知道类似问题是否有另一种可能的解决方案。我正在使用 minGramSize 为 3 的 EdgeNGramFilter。我想保护一组特定的较短单词(主要是两个字母的首字母缩略词)不被忽略,但我想将 minGramSize 保留为 3 用于其他所有内容。EdgeNGramFilter 不支持受保护的单词列表。是否有任何过滤器或设置可以在单个字段类型中实现这一点,还是我需要编写一个?
或者,我是否以错误的方式思考这个问题?
java - 使用 LinkedHashMap java 创建三元组
我正在尝试使用 LinkedHashMap> 创建一个三元组模型,其中 Entry 是最后输入的二元组的条目(其结构是:LinkedHashMap
现在的问题是,作为一个映射,它不存储多个键(用现有键的新键值对覆盖现有键值对)。
我不确定多图是否对此有用?如果是这样,怎么做?
algorithm - 简单的 n-gram 算法
我正在寻找一种可以在句子中找到 n-gram 的算法(或 C#、Java 源代码)。具体来说,我有 100 个单词的词汇表(w1 到 w100)和由这些单词组成的句子(s1、s2、s3 等)。
句子的长度从 1 到 100 个单词不等,单词可以按任何顺序出现在句子中(但一旦放在句子中,顺序就很重要),单词可以重复任意次数。
我正在寻找一种算法,该算法将采用阈值并返回高于阈值的句子中的 n-gram 以及出现 n-gram 的句子。
我也对一种间隙容错算法感兴趣,该算法以相同的顺序查找常用词,但两者之间有间隙。
提前致谢。我希望在 StackOverflow 的范围内清楚地说明这个问题。