微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用NLP如fasttext获取文本的常规类别?

如何解决如何使用NLP如fasttext获取文本的常规类别?

我正在开发一个应用程序,我想使用自然语言处理从文本中推断出一般类别。我是自然语言处理(NLP)的新手。

Google自然语言API使用合理的高级内容类别集(例如“ /艺术与娱乐”,“ /爱好与休闲”等)来完成此操作:

https://cloud.google.com/natural-language/docs/categories

我希望使用开放源代码进行此操作,并希望使用一些常规类别,例如Wikipedia高级分类

https://en.wikipedia.org/wiki/Category:Main_topic_classifications

fasttext似乎是一个不错的选择,但我一直在努力寻找用于训练的语料库。我确实看到了Wikipedia单词矢量文件,并且可以下载完整的Wikipedia,但是我看不到一种简单的方法获取带有Fasttext类别标记文章

是否有一些开源工具可以在给出某些文本的情况下识别高级通用类别?或者我可以使用训练数据集吗?

解决方法

我认为您想要找到的是一个已经免费训练的模型,该模型具有可对文本进行分类的常规类别。但这很难找到,因为类别的性质通常是Google Cloud Natural Language API之类的服务。

在这一点上,我认为您有两种选择:

  1. 使用Google Cloud Natural Language API之类的服务,该服务为您提供已经训练有数百万个数据点的模型,您可以将其集成到您的应用程序中,只需要考虑{{3} }

  2. 您首先需要收集所需的数据集,其中包含要分类的所有文本,这些文本所驻留的类别(或操纵数据集以根据文本添加所需的类别),然后可以使用pricingSpaCy之类的库来处理数据并训练模型以进行文本分类。

,

我建议在HuggingFace变形金刚库中使用“零镜头分类”管道。鉴于您不需要自己训练任何东西,它非常易于使用并且具有不错的准确性。这是一个交互式web application,用于查看无需编码即可执行的操作。这是Jupyter notebook,演示了如何在Python中使用它。您只需从笔记本中复制粘贴代码即可。

这看起来像这样:

# pip install transformers==3.4.0  # pip install in terminal
from transformers import pipeline

classifier = pipeline("zero-shot-classification")

sequence = "I like just watching TV during the night"
candidate_labels = ["arts","entertainment","politics","economy","cooking"]

classifier(sequence,candidate_labels)

# output: 
'labels': ['entertainment','economy','politics','arts','cooking'],'scores': [0.939170241355896,0.13490302860736847,0.011731419712305069,0.0025395064149051905,0.00018942927999887615]

如果有兴趣,这里是details on the theory

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?