如何使用像 fasttext 这样的 NLP 获取文本的一般类别?
How to get general categories for text using NLP like fasttext?
我正在开发一个应用程序,我想使用自然语言处理从文本中推断出一般类别。我是自然语言处理 (NLP) 的新手。
Google 自然语言 API 使用一组合理的高级内容类别(例如“/艺术与娱乐”、“/爱好与休闲”等)来做到这一点:
https://cloud.google.com/natural-language/docs/categories
我希望使用开源来做到这一点,并希望使用一些通用类别,例如维基百科高级分类:
https://en.wikipedia.org/wiki/Category:Main_topic_classifications
fasttext 似乎是个不错的选择,但我正在努力寻找用于训练的语料库。我确实看到了维基百科词向量文件,并且可以下载完整的维基百科,但我没有找到一种简单的方法来获取带有 fasttext 类别标签的文章。
是否有一些开源工具可以识别给定一些文本的高级一般类别——或者是否有我可以使用的训练数据集?
我认为您要寻找的是一个已经免费训练的模型,该模型具有您可以对文本进行分类的一般类别。但这很难找到,因为类别的性质,通常是像 Google Cloud Natural Language API.
这样的服务
此时我认为你有两个选择:
我建议使用“zero-shot 分类”管道 HuggingFace Transformers library. It's very easy to use and has decent accuracy given that you don't need to train anything yourself. Here is an interactive web application to see what it does without coding. Here is a Jupyter notebook,它演示了如何在 Python 中使用它。您可以 copy-paste 笔记本中的代码。
这看起来像这样:
# 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,如果你有兴趣的话。
我正在开发一个应用程序,我想使用自然语言处理从文本中推断出一般类别。我是自然语言处理 (NLP) 的新手。
Google 自然语言 API 使用一组合理的高级内容类别(例如“/艺术与娱乐”、“/爱好与休闲”等)来做到这一点:
https://cloud.google.com/natural-language/docs/categories
我希望使用开源来做到这一点,并希望使用一些通用类别,例如维基百科高级分类:
https://en.wikipedia.org/wiki/Category:Main_topic_classifications
fasttext 似乎是个不错的选择,但我正在努力寻找用于训练的语料库。我确实看到了维基百科词向量文件,并且可以下载完整的维基百科,但我没有找到一种简单的方法来获取带有 fasttext 类别标签的文章。
是否有一些开源工具可以识别给定一些文本的高级一般类别——或者是否有我可以使用的训练数据集?
我认为您要寻找的是一个已经免费训练的模型,该模型具有您可以对文本进行分类的一般类别。但这很难找到,因为类别的性质,通常是像 Google Cloud Natural Language API.
这样的服务此时我认为你有两个选择:
我建议使用“zero-shot 分类”管道 HuggingFace Transformers library. It's very easy to use and has decent accuracy given that you don't need to train anything yourself. Here is an interactive web application to see what it does without coding. Here is a Jupyter notebook,它演示了如何在 Python 中使用它。您可以 copy-paste 笔记本中的代码。
这看起来像这样:
# 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,如果你有兴趣的话。