查找文本的相似程度-一类分类器(NLP)

问题描述 投票:0回答:1

我有一个大型数据集,其中包含近5亿条推文。我正在做一些有关公司如何参与行动主义的研究,到目前为止,我已经标记了一些推文,这些推文可以根据推文中某些主题标签的存在而归类为行动主义类别。

现在,假设公司在推特上发布了一个激进主义话题,而没有在推文中插入任何标签。我的代码不会对它进行分类,我的想法是只运行一个类的SVM分类器。

这导致以下问题:

  • 此解决方案在数据上科学可行吗?
  • 是否还存在其他一类分类器?
  • ((最重要的)最重要的是,是否还有其他方法可以找到一条推文是否类似于包含行动主义主题标签的推文的可接收性?

感谢您的帮助!

python twitter nlp classification text-classification
1个回答
0
投票

您已经描述了针对设置为PUL的一类问题“正无标签学习”的设置。该名称来自以下事实:您有两种类型的数据:正数据(“活动主义”标签)和未标记的数据(也许是“活动主义”,也许没有)。使用SVM的想法很常见,随机森林也很常见。与所有ML问题一样,神经网络正变得越来越普遍。

pywsl是一个“弱监督”库,其中包括一些PUL实现(PUL是一种弱监督)。这是在某些综合数据上使用它的示例

import numpy as np

from sklearn.model_selection import GridSearchCV, StratifiedKFold
from sklearn.utils.estimator_checks import check_estimator

from pywsl.pul import pumil_mr
from pywsl.utils.syndata import gen_twonorm_pumil
from pywsl.utils.comcalc import bin_clf_err


def main():
    prior = .5
    x, y, x_t, y_t = gen_twonorm_pumil(n_p=30, n_u=200, 
                                       prior_u=prior, n_t=100)
    param_grid = {'prior': [prior], 
                  'lam': np.logspace(-3, 1, 5), 
                  'basis': ['minimax']}
    lambda_list = np.logspace(-3, 1, 5)
    clf = GridSearchCV(estimator=pumil_mr.PUMIL_SL(), 
                       param_grid=param_grid,
                       cv=5, n_jobs=-1)
    clf.fit(x, y)
    y_h = clf.predict(x_t)
    err = 100*bin_clf_err(y_h, y_t, prior)
    print("MR: {}%".format(err))


if __name__ == "__main__":
    main()

也请参阅此可能重复的问题,Binary semi-supervised classification with positive only and unlabeled data set

© www.soinside.com 2019 - 2024. All rights reserved.