问题标签 [nltk-trainer]

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.

0 投票
1 回答
578 浏览

python - 当我将(NLTK)停用词应用于数据框时,它显示错误?

上面是我的数据框,列:评论和标签当我执行下面的代码时:`

结果:

**

实际上,我想将停用词应用于只有两列的数据框。当我用单列(评论)执行此代码时,它运行良好,但是当我用两列(评论和标签)执行时,它显示了一些错误。任何关于如何处理这两列代码的建议。

**

0 投票
0 回答
43 浏览

nltk - NLTK 的中性标签

我有类似的问题,如下所示

为什么 NLTK NaiveBayes 分类器错误分类了一条记录?

在我的例子中,我查询了积极的提要并构建了positive_vocab,然后查询了消极的提要并构建了negative_voca。我从 feed clean 中获取数据并构建了分类器。如何构建neutral_vocab。当在negative_voca和positive_vocab中找不到给定的单词时,有没有一种方法可以指示NLTK分类器返回中性标签。我怎么做?

在我当前的实现中,如果我给出两个集合中都不存在的单词,则默认情况下它是肯定的。相反,它应该告诉,中立或未找到

0 投票
2 回答
444 浏览

nlp - nltk.org 使用朴素贝叶斯分类器进行句子分割的示例:.sent 如何分隔句子以及 ML 算法如何改进它?

在 nltk.org 的书(第 6 章)中有一个示例,他们使用 NaiveBayesian 算法将标点符号分类为完成一个句子或未完成一个......

这就是他们所做的:首先,他们获取一个语料库并使用 .sent 方法来获取句子并从中建立一个索引,用于将它们分开的标点符号 (the boundaries) 所在的位置。

然后他们“标记”文本(将其转换为单词和标点符号列表)并将以下算法/函数应用于每个标记,以便他们获得字典中返回的特征列表:

ML 算法将使用这些特征来将标点符号分类为是否完成句子(即作为边界标记)。

使用这个 fn 和 'boundaries' 索引,他们选择所有标点符号,每个都有其特征,并将它们标记为True边界,或False一个,从而创建标记的特征集列表:

这是我们在打印前四组时可能拥有的输出示例:

有了这个,他们训练和评估标点符号分类器:

现在,(1)这样的 ML 算法将如何改进以及改进什么?我无法理解第一个简单的算法如何更好地检查标点符号中的下一个标记是否是大写字母,而前一个是小写字母。事实上,该算法被用来验证符号是边界......!如果它没有改善它,那可能有什么用处?

与此相关:(2)这两种算法中的任何一种是如何真正分离句子的?我的意思是,特别是如果最好的是第一个简单的,nltk 是否理解句子只是两个标点符号之间的文本,后面跟着一个单词,第一个图表是大写字母,前一个单词是小写字母?这是 .sent 方法的作用吗?请注意,这与语言学或牛津词典更好地说是如何定义句子的方式相去甚远:

“一组本身完整的词,通常包含一个主语和谓语,传达一个陈述、问题、感叹词或命令,并由一个主要从句和有时一个或多个从句组成。”

或者(3)原始语料库文本是否像treebankbrown已经被手动分割?- 在这种情况下,选择它们的标准是什么?

0 投票
0 回答
38 浏览

python - 如何从文档(数据集)中查找和打印不匹配/不相似的单词?

我正在尝试重写基本上采用输入文本文件并与不同文档进行比较并得出相似性的算法。

现在我想打印不匹配单词的输出并输出一个带有不匹配单词的新纺织品。

从此代码中,“hello force”是输入,并根据 raw_documents 检查并打印出 0-1 之间匹配文档的排名(单词“force”与第二个文档匹配,输出为第二个文档提供更高的排名,但“hello”不在任何 raw_document 我想打印不匹配的单词“hello”作为不匹配),但我想要打印与任何 raw_document 都不匹配的不匹配的输入单词

0 投票
0 回答
117 浏览

python-3.x - How to train/extend an nltk vocabulary in a non-English language

I'm parsing a German text with many hyphens in it. To check if a word is a proper German word (and only got seperated by a hyphen because it was the end of the line) or needs those hyphens because that is actually how it should be written, I am currently extending a collection of lemmatized words that I found here: https://github.com/michmech/lemmatization-lists

Can you point me to a way how that can be done with nltk?

What I do: when my parser encounters a word with a hyphen, I check spelling without hyphen (i.e. if it is contained in my list with lemmatized words). If it is not contained in my list (currently some 420,000 words) I will check myself if it should be added to my list or written with hyphen.

This is the function that does the work:

The lists "german_words" and "hyphened_words" get updated every now and again so they contain the new words from the sessions before.

What I do works, however it is slow work. I have been searching for ways to do this with nltk but I seem to have looked at the wrong places. Can you point me to a way that trains an nltk collection of words or that uses a more efficient way of processing this?

0 投票
0 回答
97 浏览

python - NLTK:使用 nltk 创建 ClassifierBasedTagger 时如何定义“labeled_featuresets”?

我现在正在玩 nltk。我正在尝试使用 nltk 创建各种分类器,进行命名实体识别,以比较它们的结果。创建 n-gram 标记器很容易,但是我在为朴素贝叶斯或决策树分类器创建 ClassifierBasedTagger 时遇到了一些问题。

我的数据采用 conll iob 格式。读完后,我将它转换成一个看起来像这样的元组:(word, POS-tag), entity)

我创建了以下创建分类器的类:

我就是这样称呼它的:

我遇到的问题出在第一行代码中(naiveBayers = NaiveBayesClassifier.train) 我知道我应该将训练函数传递给标记的特征集。但是,我不确定这意味着什么。在文档中它说以下内容:

:param tags_featuresets:分类特征集列表,即元组列表(featureset, label)

特征集是单词,标签是实体吗?

遇到这个问题后,我做了一些研究并找到了nltk-trainer。在args.py文件中创建了分类器构建器,更具体地说,在函数“make_classifier_builder”的内部类“trainf”中创建。但是我不知道变量“train_feats”是从哪里来的。可能和我对内在功能的理解有限有关。我找不到它在任何地方被调用。

如果有人能指出我正确的方向,我会非常感激。

编辑:我刚刚在NLTK 3 Cookbook中读到 feature_detector 函数返回一个功能集(第 143 页)。那么我应该以某种方式使用该功能吗?

我当前的功能 Detector 看起来如下,并从那本书中取出:

0 投票
1 回答
890 浏览

nlp - nltk中的拉普拉斯平滑函数

我正在使用构建文本生成模型nltk.lm.MLE,我注意到他们也有nltk.lm.Laplace我可以用来平滑数据以避免被零除,文档是

是,没有关于如何使用此功能平滑测试数据的明确示例。谁能给我一个例子。

0 投票
0 回答
287 浏览

python - NLTK 问题:未定义名称“save_file”

我该如何解决这个问题?

NameError:名称“save_file”未定义

demo_sent_subjectivity(text)是 nltk.sentiment.utils 中的一个方法,然后调用另一个方法demo_subjectivity(trainer, save_analyzer=False, n_instances=None, output=None)

这些方法如下:

在demo_subjectivity方法中调用了 save_file方法,但我不明白,它的源代码在哪里。我注意到, save_file 方法存在于SentimentAnalyzer类中,但为什么在这里它被称为save_file,而不是sentim_analyzer.save_file

0 投票
0 回答
32 浏览

python - 我正在尝试用 Python 开发一个带有 nltk 库的聊天机器人

我在使用“I'm”时遇到了问题,因为我希望机器人对“I'm Sara”的回复与回复“I'm happy”的句子不同。请问有人知道怎么修吗?具体来说:

对于名字句子和

为了感觉。如果我输入:“我很好”,机器人会回复我“你好,太好了,你今天好吗?”

你能帮我么?

0 投票
0 回答
53 浏览

python - 在 python NLTK 或其他包中将任何州、县、地区的名称或其缩写更改为国家/地区名称

我有一个位置列表,其中包含州、城市和国家、县和地区,有缩写,有一些是完整的。例如,纽约州、加利福尼亚州、英格兰、英国、美国、明尼苏达州、伦敦、布拉德福德等。我希望将其全部转换为国家/地区,例如 NY=USA、England=UK、Scotland = UK、Minnesota = USA 等。

我想要一个可以在我的程序中使用的包或库来将任何缩写、州、州代码或任何城市更改为位置所在的国家/地区。所以如果你是伦敦,它应该返回英国,芝加哥返回美国,等等。

是否有可能在python中实现这一点?提前致谢。