决定一个文本是关于"Topic A"与否 - 使用Python的NLP



我正在尝试编写一个python程序,该程序将决定给定的帖子是否是关于志愿服务的主题。我的数据集很小(只有帖子,它们被逐个检查(,所以像LDA这样的方法不会产生结果。

我的最终目标是一个简单的对/错,一篇帖子是否与主题有关。

我正在尝试这种方法:

  1. 使用谷歌的word2vec模型,我正在创建一个";集群";与单词类似的单词:";志愿者">
CLUSTER = [x[0] for x in MODEL.most_similar_cosmul("volunteer", topn=120)]
  1. 获取帖子并使用谷歌翻译将其翻译成英语
  2. 使用NLTK清理翻译后的帖子(删除停止语、标点符号和将帖子变为文字(
  3. 用翻译的干净的帖子做一个BOW
  4. 这个阶段对我来说很难;距离"/"相似性"/一些能帮助我得到我想要的正确/错误答案的东西,但我想不出一个好的方法来做到这一点

感谢您的建议和提前提供的帮助。

您试图直观地即兴制定一组步骤,最终将这些帖子分为两类,"志愿服务";以及";不是自愿的";。

你应该在网上寻找这样的例子:;文本分类";与您的任务类似的,通过它们(使用它们的原始演示数据(进行理解,然后逐步调整它们以使用您的数据。

在某种程度上,word2vec可能对你的任务有帮助,但我不会从它开始。同样,消除停止词、执行旅名化等最终可能会有所帮助,但不一定是重要的。

你通常想从获取(如果必要的话,通过手工标记(一组训练文本开始;志愿服务";或";不自愿";值(已知标签(。

然后,为文本创建一些特征向量——一种简单的开始方法是";单词袋;代表。

然后,将这些具有已知标签的表示提供给一些现有的分类算法。Python中流行的scikit-learn包提供了许多功能。也就是说:你还不需要担心选择计算";距离"/"相似性"/指导你自己的特设分类器的东西。只需将标记的数据输入一个(或多个(现有分类器,并检查它们的表现。许多人会在内部使用各种类型的相似性/距离计算,但这是自动的,并且从选择&配置算法。

最后,当你有一些东西从头到尾都在工作时,无论结果有多温和,都可以尝试其他预处理文本的方法(停止单词删除、旅名化等(、特征化文本和其他分类器/算法参数化-来比较结果,从而发现在给定特定数据、目标和实际约束的情况下,哪些方法效果良好。

CCD_ 2〃;使用文本数据";该指南值得一读;工作,以及他们的";选择正确的估计器";地图有助于了解替代技术和主要算法的广阔地形,以及不同的技术和算法何时适用于您的任务。

此外,像Jake Vanderplas(github.com/jakevdp(和Olivier Grisel(github.com/sogrisel(这样的scikit-learn贡献者/教育工作者有许多在线笔记本/教程/存档视频演示,这些演示贯穿了所有的基础知识,通常包括与您类似的文本分类问题。

相关内容

  • 没有找到相关文章

最新更新