Представляем простой в использовании и многофункциональный инструмент сегментации китайских слов Python SnowNLP, полное название Simplified Chinese Text Processing. При реализации сегментации слов он предоставляет такие функции, как преобразование в пиньинь (максимальное соответствие, достигаемое деревом Trie) и преобразование традиционного китайского в упрощенный (максимальное совпадение, достигаемое деревом Trie). Простое управление и мощные функции.
Install
$ pip install snownlp
Useage
SnowNLP — это библиотека классов, написанная на python, которая может легко обрабатывать китайский текстовый контент.TextBlobНаписано для вдохновения, т.к. большинство библиотек обработки естественного языка в основном для английского языка, поэтому я написал библиотеку классов, удобную для обработки китайского языка, и в отличие от TextBlob здесь не используется NLTK, все алгоритмы реализованы сами по себе, и он поставляется с некоторыми обученными словарями. Обратите внимание, что эта программа полностью кодируется юникодом, поэтому, пожалуйста, расшифруйте ее в юникод самостоятельно при ее использовании.
from snownlp import SnowNLP
s = SnowNLP(u'这个东西真心很赞')
s.words # [u'这个', u'东西', u'真心',
# u'很', u'赞']
s.tags # [(u'这个', u'r'), (u'东西', u'n'),
# (u'真心', u'd'), (u'很', u'd'),
# (u'赞', u'Vg')]
s.sentiments # 0.9769663402895832 positive的概率
s.pinyin # [u'zhe', u'ge', u'dong', u'xi',
# u'zhen', u'xin', u'hen', u'zan']
s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')
s.han # u'「繁体字」「繁体中文」的叫法
# 在台湾亦很常见。'
text = u'''
自然语言处理是计算机科学领域与人工智能领域中的一个重要方向。
它研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法。
自然语言处理是一门融语言学、计算机科学、数学于一体的科学。
因此,这一领域的研究将涉及自然语言,即人们日常使用的语言,
所以它与语言学的研究有着密切的联系,但又有重要的区别。
自然语言处理并不是一般地研究自然语言,
而在于研制能有效地实现自然语言通信的计算机系统,
特别是其中的软件系统。因而它是计算机科学的一部分。
'''
s = SnowNLP(text)
s.keywords(3) # [u'语言', u'自然', u'计算机']
s.summary(3) # [u'因而它是计算机科学的一部分',
# u'自然语言处理是一门融语言学、计算机科学、
# 数学于一体的科学',
# u'自然语言处理是计算机科学领域与人工智能
# 领域中的一个重要方向']
s.sentences
s = SnowNLP([[u'这篇', u'文章'],
[u'那篇', u'论文'],
[u'这个']])
s.tf
s.idf
s.sim([u'文章'])# [0.3756070762985226, 0, 0]
Features
- Сегментация китайских слов (Character-Based Generative Model)
- маркировка частями речи (TnT3-граммовая спрятанная лошадь)
- Анализ настроений (теперь обучающие данные в основном представляют собой оценку покупки и продажи вещей, поэтому для других это может не очень хорошо работать)
- Текстовая классификация (наивный байесовский метод)
- Преобразование в пиньинь (максимальное совпадение, реализованное деревом Trie)
- От традиционного к упрощенному (максимальное соответствие, реализованное деревом Trie)
- Извлечь текстовые ключевые слова (TextRankалгоритм)
- Извлечь текстовые сводки (TextRankалгоритм)
- тф, идф
- Токенизация (разделить на предложения)
- Текст похож(BM25)
- поддержка python3 (спасибоerning)
Train
Обучение теперь включает в себя сегментацию слов, тегирование частей речи, анализ настроений, а также предоставлены исходные файлы, которые я использовал для обучения.В качестве примера возьмем сегментацию слов.Сегментация слов находится вsnownlp/seg
Под содержанием
from snownlp import seg
seg.train('data.txt')
seg.save('seg.marshal')
# from snownlp import tag
# tag.train('199801.txt')
# tag.save('tag.marshal')
# from snownlp import sentiment
# sentiment.train('neg.txt', 'pos.txt')
# sentiment.save('sentiment.marshal')
Таким образом, обученный файл сохраняется какseg.marshal
, затем изменитеsnownlp/seg/__init__.py
внутреннийdata_path
Просто укажите на файл, который вы только что обучили