Twitter/ 通用分类训练语料库

有人知道哪里有好的Twitter通用分类语料库吗?

我正在寻找广泛的分类,例如:
– 运动
– 科学/技术
– 食品
– 健康
– 娱乐
– 音乐
– 游戏
– 金融
– 教育
– 政治
– 电视
– 宗教
– 汽车
– 冲突

(我认为这几乎涵盖了一切)

这里链接了一些非常好的资源,但它们过于具体:

  • Reuters 专门用于商品和自然资源
  • 20Newsgroups 看起来是为美国报纸准备的
  • Medir 用于心血管医学数据

编辑
这非常令人兴奋。我通过sklearn找到了这个数据库。这是所有类别的列表。看起来它包含了我想要的东西。我得学习如何使用,然后实现它,所以如果它有效的话,我会再回来告诉你们的…


回答:

大体上成功了!虽然这不是针对Twitter优化的训练数据集,但似乎更适合通用的文本分类。
好吧,这比预期的要尴尬得多。首先,

from sklearn.datasets import fetch_rcv1rcv1 = fetch_rcv1()

创建了一个我不知道如何处理的数据集。数据是47236维的向量,而不是文本标记,也没有明显的或我能找到的文档说明如何处理这些数据。所以我不得不走迂回路线。

查看数据源,可以下载标记文件。它们被分成5部分:

lyrl2004_tokens_train.dat, lyrl2004_tokens_test_pt0.dat, lyrl2004_tokens_test_pt1.dat, lyrl2004_tokens_test_pt2.dat, lyrl2004_tokens_test_pt3.dat, 

一个文件包含所有分类:

rcv1-v2.topics.qrels

作为一个有用的补充说明,对于这些大型文件,最好先查看一些数据以了解你正在处理什么内容。例如,在Linux中,你可以使用head -5 rcv1-v2.topics.qrels来查看分类数据的前5行。

这些文件可以通过id链接。因此,我创建了一个包含所有id及其对应文本标记和分类的字典。我之所以使用字典来做这件事,这是一个相当慢的过程,而不是简单地创建两个包含所有值和错误的列表,是因为我不知道数据文件是否100%匹配。

我的字典看起来像这样:
dTrainingData = {‘2286’: {lsTokens: […], lsCats: […]}}

然后,我创建了两个numpy数组,一个用于标记,一个用于分类。这些需要先处理。因此,你可以这样训练模型:

def categorize(sText):    import numpy as np    aTokens = np.array([d['lsTokens'] for d in dTrainingData.values()], str)    lCats = [d['lsCats'] for d in dTrainingData.values()]    print("creating binary cats")    from sklearn import preprocessing    oBinarizer = preprocessing.MultiLabelBinarizer()    aBinaryCats = oBinarizer.fit_transform(lCats)    from sklearn.multiclass import OneVsRestClassifier    from sklearn.feature_extraction.text import TfidfTransformer    from sklearn.svm import LinearSVC    from sklearn.feature_extraction.text import CountVectorizer    from sklearn.pipeline import Pipeline    oClassifier = Pipeline([        ('vectorizer', CountVectorizer()),        ('tfidf', TfidfTransformer()),        ('clf', OneVsRestClassifier(LinearSVC()))])    print("fitting data to classifier...")    oClassifier.fit(aTokens, aBinaryCats)    aText = np.array([sText])    aPredicted = oClassifier.predict(aText)    lAllCats = oBinarizer.inverse_transform(aPredicted)

结果喜忧参半。如果你查看类别列表,你会注意到很多类别都是金融相关的,而不是我想要的均匀分布。所以我有很多失误。然而,它建立了一个坚实的基础,并且使用上述框架,很容易向dTrainingData字典中添加标记/类别以实现更具体的分类。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注