gpt4 book ai didi

machine-learning - 使用机器学习的情感分析分类器

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

我们如何制作一个用于情感分析的工作分类器,因为我们需要在巨大的数据集上训练我们的分类器。

我有大量数据集需要训练,但是分类器对象(这里使用 Python)在使用 3000 个单词时会出现内存错误。我需要训练超过 100K 的单词。

我的想法是将巨大的数据集分成更小的部分,并为每个部分创建一个分类器对象,并将其存储在 pickle 文件中并使用所有这些部分。但似乎不可能使用所有分类器对象进行测试,因为在测试过程中只需要其中一个对象。

我想到的解决方案是组合存储在pickle文件中的所有已保存的分类器对象(这只是没有发生),或者继续使用新的训练集附加相同的对象(但同样,它正在被被覆盖且不附加)。

我不知道为什么,但我找不到任何解决这个问题的方法,即使它是机器学习的基础。每个机器学习项目都需要在巨大的数据集上进行训练,而训练这些数据集的对象大小总是会出现内存错误。

那么,如何解决这个问题呢?我对任何解决方案持开放态度,但想听听从事实时机器学习项目的人们的后续行动。

代码片段:

documents = [(list(movie_reviews.words(fileid)), category)
for category in movie_reviews.categories()
for fileid in movie_reviews.fileids(category)]

all_words = []
for w in movie_reviews.words():
all_words.append(w.lower())
all_words = nltk.FreqDist(all_words)
word_features = list(all_words.keys())[:3000]

def find_features(document):
words = set(document)
features = {}
for w in word_features:
features[w] = (w in words)
return features

featuresets = [(find_features(rev), category) for (rev, category) in documents]
numtrain = int(len(documents) * 90 / 100)
training_set = featuresets[:numtrain]
testing_set = featuresets[numtrain:]

classifier = nltk.NaiveBayesClassifier.train(training_set)

PS:我正在使用 NaiveBayes 的 NLTK 工具包。我的训练数据集正在打开并存储在文档中。

最佳答案

您似乎缺少两件事:

  1. 文本数据集通常非常稀疏,您应该将它们存储为稀疏矩阵。对于这种表示,您应该能够使用词汇在内存中存储数百万个文档。 100,000。

  2. 许多现代学习方法都是在小批量场景中进行训练的,这意味着您永远不需要内存中的整个数据集,而是将其与随机数据子集一起提供给模型 - 但仍然训练单个模型。这样,您的数据集可以是任意大的,内存消耗是恒定的(由小批量大小固定),并且只有训练时间随样本量变化。

关于machine-learning - 使用机器学习的情感分析分类器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36959683/

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