gpt4 book ai didi

machine-learning - 使用机器学习算法进行词分类

转载 作者:行者123 更新时间:2023-11-30 09:28:59 25 4
gpt4 key购买 nike

我是机器学习的新手。我目前想要的是对某些单词是否属于某个类别进行分类..

让我更具体地说,在输入一些单词时,我需要检查这些单词是否属于“马拉雅拉姆语”语言。

示例:enthayi ninakk sugamanno?

这些是一些用英语表达的马拉雅拉姆语单词。在提供这样的输入时,它需要检查训练后的数据,如果任何输入单词属于“马拉雅拉姆语”类别,那么它需要显示它是马拉雅拉姆语。

我尝试过的事情..

我尝试使用 NaiveBayesClassifier 对它进行分类,但它始终对所有输入数据显示积极响应。

train = [
('aliya','Malayalam')]
cl = NaiveBayesClassifier(train)
print cl.classify('enthayi ninakk sugamanno')

但是 print 语句给出了输出“马拉雅拉姆语”

最佳答案

您需要正数据和负数据来训练分类器。添加一堆英文文本或您域中可能的替代内容并不困难。但是您需要了解 nltk 分类器的实际工作原理,否则您将只能处理您在训练数据中看到的单词:您需要选择并提取分类器将用来执行的“特征”它的工作。

因此(从评论中)您想要将单个单词分类为马拉雅拉姆语或非马拉雅拉姆语。如果你的“特征”是整个单词,那么你在分类器上浪费时间;只需创建一个马拉雅拉姆语单词的 Python set(),然后检查您的输入是否在其中。要走分类器路线,你必须弄清楚是什么让一个单词“看起来”是马拉雅拉姆语(词尾?长度?音节结构?),并手动将这些属性转换为特征,以便分类器可以决定它们的重要性。

更好的语言检测方法是使用字母三元组:每种语言都有不同的常见和不常见三元组“配置文件”。您可以通过谷歌搜索它,或者编写您自己的代码。我用“余弦相似度”作为样本文本和引用数据之间距离的度量,得到了很好的结果。在 this question您将看到如何计算余弦相似度,但针对一元组计数;使用三元组进行语言识别。

三元组方法的两个好处:您不依赖于熟悉的单词,也不依赖于想出聪明的特征,并且您可以将其应用于比单个单词更长的文本片段(即使在过滤掉英语之后),这将给您更可靠的结果。 nltk 的 langid 语料库提供了数百种常见语言的三元组计数,但编译您自己的统计数据也很容易。 (另请参见nltk.util.trigrams()。)

关于machine-learning - 使用机器学习算法进行词分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46391559/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com