SnowNLP是一个python写的类库,可以方便的处理中文文本内容,是受到了TextBlob的启发而写的,由于现在大部分的自然语言处理库基本都是针对英文的,于是写了一个方便处理中文的类库,并且和TextBlob不同的是,这里没有用NLTK,所有的算法都是自己实现的,并且自带了一些训练好的字典。注意本程序都是处理的unicode编码,所以使用时请自行decode成unicode。
- 中文分词(Character-based Generative Model)
- 词性标注(TnT 3-gram 隐马)
- 情感分析(现在训练数据主要是买卖东西时的评价,所以对其他的一些可能效果不是很好,待解决)
- 文本分类(Naive Bayes)
- 转换成拼音(Trie树实现的最大匹配)
- 繁体转简体(Trie树实现的最大匹配)
- 提取文本关键词(TextRank算法)
- 提取文本摘要(TextRank算法)
- tf,idf
- Tokenization(分割成句子)
- 文本相似(BM25)
- 支持python3(erning)
现在提供训练的包括分词,词性标注,情感分析,而且都提供了我用来训练的原始文件
以分词为例
分词在目录下
这样训练好的文件就存储为了,之后修改里的指向刚训练好的文件即可
算法具体原理我会放在下一篇文章,本文重点在应用,这里不详细介绍了
关键词提取
将原文本拆分为句子,在每个句子中过滤掉停用词(可选),并只保留指定词性的单词(可选)。由此可以得到句子的集合和单词的集合。
每个单词作为pagerank中的一个节点。设定窗口大小为k,假设一个句子依次由下面的单词组成:
、、等都是一个窗口。在一个窗口中的任两个单词对应的节点之间存在一个无向无权的边。
基于上面构成图,可以计算出每个单词节点的重要性。最重要的若干单词可以作为关键词。
关键短语提取
参照关键词提取提取出若干关键词。若原文本中存在若干个关键词相邻的情况,那么这些关键词可以构成一个关键词组。
例如,在一篇介绍的文章中,可以找到关键词、、,通过关键词组提取,可以得到。
摘要生成
将每个句子看成图中的一个节点,若两个句子之间有相似性,认为对应的两个节点之间有一个无向有权边,权值是相似度。
通过pagerank算法计算得到的重要性最高的若干句子可以当作摘要。
运行结果如下:
安装
方式一
方式二
方式三
方式四
Python 3下需要将上面的python改成python3,pip改成pip3。
卸载
依赖
jieba >= 0.35
numpy >= 1.7.1
networkx >= 1.9.1
报错1
使用 networkx 3.0 及以上版本,可能会报这个错误;暂时可将版本降低到 1.9.1。
报错2
报错2
解决方法:修改文件
将
替换为
报错3
如果你的代码中有这样的导入:
你应该将其更改为:
这样应该就能解决你遇到的 importError 问题。
智谱AI是一家诞生于清华大学计算机系,以技术转化成果为基础的公司,专注于研发和提供新一代的认知智能通用模型。
ChatGLM,清华技术成果转化的公司智谱AI研发的支持中英双语的对话机器人。
开发文档
获取api-key
安装
如下以 Python SDK 为例进行说明,其它编程语言工具包将持续推出
首先请通过如下方式进行安装 SDK 包:
我们升级了最新的模型 GLM-4、GLM-3-Turbo,支持了System prompt、Function Call、Retrieval、Web_Search等新功能。使用以上新功能需升级最新版本的 Python SDK。如您已安装老版本SDK,请您更新到最新版SDK。