我试图得到一个单词的1,2,3克后缀,并在我的模型中使用它们作为特征。
例,
word = "Apple"
1 gram suffix = 'e'
2 gram suffix = 'le'
3 gram suffix = 'ple'
此外,我是NLP新手,不知道如何在我的ML模型中使用这n克作为特征。如何将这些“字符串”n-gram特性转换为某种数字表示,以便在我的模型中使用它们。
谁能帮帮我吗?
Yo可以定义一个自定义的分析器
来定义如何从输入中获得特性。对于您的情况,一个简单的lambda函数从单词中获取后缀就足够了:
from sklearn.feature_extraction.text import CountVectorizer
word = ["Orange","Apple", "I"]
n=3
vect = CountVectorizer(analyzer=lambda x: (x[-i-1:] for i in range(0,min(n,len(x)))))
mat = vect.fit_transform(word).todense()
现在,如果我们从得到的向量化矩阵构造一个数据frame:
pd.DataFrame(mat, columns=vect.get_feature_names())
I e ge le nge ple
0 0 1 1 0 1 0
1 0 1 0 1 0 1
2 1 0 0 0 0 0
问题内容: 我正在使用NLTK在语料库中搜索n- gram,但是在某些情况下会花费很长时间。我已经注意到,计算n元语法在其他软件包中并不罕见(显然,Haystack具有某些功能)。如果我放弃NLTK,这是否意味着可以以更快的方式在语料库中查找n- gram?如果是这样,我可以使用什么来加快速度? 问题答案: 由于您没有指明是想要单词级还是字符级的n-gram,因此我将假设前者,而不会失去一般性
问题内容: 我有以下代码。我知道我可以使用函数过滤掉少于频率计数的搭配。但是,在决定设置过滤频率之前,我不知道如何获取文档中所有n- gram元组(在我的情况下为bi-gram)的频率。如您所见,我正在使用nltk搭配类。 问题答案: 该功能有效
最近,我一直在尝试用斯坦福核心NLP来训练n-gram实体。我遵循了以下教程--http://nlp.stanford.edu/software/crf-faq.shtml#b 这样,我就可以只指定unigram标记和它所属的类。有谁能引导我,让我把它延伸到n克。我正试图从聊天数据集中提取像电影名称这样的已知实体。 如果我误解了斯坦福教程,请指导我,同样的教程可以用于N克培训。
一个n-gram是一个包含n个tokens(如词)的序列。NGram可以将输入特征 转换为n-grams。 NGram输入一系列的序列,参数n用来决定每个n-gram的词个数。输出包含一个n-grams序列,每个n-gram表示一个划定空间的连续词序列。 如果输入序列包含的词少于n,将不会有输出。 import org.apache.spark.ml.feature.NGram val w
问题内容: 我想知道是否有替代 使用 流 ? 问题答案: 定制收集器可以这样写: 并像这样使用它:
问题内容: 使用此链接中的代码将文本文件内容加载到GUI: 如果input.txt的内容为: 现在,我想计算HashMap中的值,但是计算存储在文本文件中的所有数据行。 我w’d想问我怎么能算的项目,即价值的?根据 作者的姓名 ,我怎么得到 4 号? __ 问题答案: 由于AUTHOR具有1对多的关系,因此应将其映射到结构而不是。 例如: