最新动态
jiaba关键词提取提速策略&基于word2vec的关键词提取方法&python中文编码问题&人人网的关键词提取策略
2024-11-01 23:39

https://www.jianshu.com/p/450b84a07d3b
之前需要提取关键词,所以介绍了jieba关键词提取,这可能是最简单的提取关键词的方法了,此种方法代码少,(只有两行)但是速度非常慢,(实际上提取效果也很一般)对于大量文本的提取关键词效率太低,想要提速,那么就放弃使用结巴,转而利用sklearn自带tfidf来提取关键词。
大致流程如下:
1.先用读入文本然后用结巴分词切词。
2.降噪(只保留长度大于等于2的中文词,去除停用词)
3.使用sklearn中的计算各个词的tf-idf值。
4.对关键词按照其tf-idf的值从大到小排序。
5.取出表中前100个词。

jiaba关键词提取提速策略&基于word2vec的关键词提取方法&python中文编码问题&人人网的关键词提取策略

用这个方法速度会比jieba自带的关键词提取至少快几十倍,而且这中间的分词部分还能使用jieba并行切词,分四核进一步提速以后能够快上百倍。
代码如下:

两种方法速度都能比jieba的关键词提取快几十倍到上百倍(但是结巴的关键词提取可以抽取词性,可以把很多不需要的词性的词去除),我们比较提取前100个关键词的结果,第一种方法经过测试和jieba原生的关键词重合度为66%,第二种重合度为55%。

Python 读写文件 中文乱码
需要使用utf-8來編碼
str = str.encode('utf-8')
錯誤:TypeError: write() argument must be str, not bytes+
打开语句修改为用二进制方式打开

附:
读写模式:r只读,r+读写,w新建(会覆盖原有文件),a追加,b二进制文件.常用模式

如:'rb','wb','r+b'等等

读写模式的类型有:

rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278)
w 以写方式打开,
a 以追加模式打开 (从 EOF 开始, 必要时创建新文件)
r+ 以读写模式打开
w+ 以读写模式打开 (参见 w )
a+ 以读写模式打开 (参见 a )
rb 以二进制读模式打开
wb 以二进制写模式打开 (参见 w )
ab 以二进制追加模式打开 (参见 a )
rb+ 以二进制读写模式打开 (参见 r+ )
wb+ 以二进制读写模式打开 (参见 w+ )
ab+ 以二进制读写模式打开 (参见 a+ )

錯誤:UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc8 in position 2: invalid continuation byte
出現這種錯誤說明需要漢字解碼方式,汉字编码中现在主要用到的有三类,包括GBK,GB2312和Big5,測試了一下Big5也會報類似的錯誤。

錯誤:UnicodeDecodeError: 'gbk' codec can't decode byte 0x91 in position 8: illegal multibyte sequence

解决办法1.

解决办法2.

后来找到了解决中文乱码的通用方法,python2X3X皆可

下面的部分转自:http://ugc.renren.com/2010/02/01/keywords-extraction-overview/

基于词频(TF-IDF)统计的方法

思想:常用TFIDF计算文本特征权重,权重高的为关键词,该方法简单,效果也不错。

在实际操作中常会对文本进行聚类处理,计算文本特征权重后,先对文本向量(在聚类操作中,常用文本的句子做为向量单位)利用余弦定理计算文本相似度或距离,然后通过聚类算法,将相似文本聚类。最后在各文本类中选择关键词,合并得出最终结果。这样先通过文本相似度聚类,提高了关键词准确率。

TFIDF:TF(term frequency)为特征在文本中出现频率,IDF(inverse document frequency)文档中出现该词的频率log(D/Dw),该公式的思想是:特征权重除了和出现频率成正比外,还和文档频率成反比(如果只有文本中包含该特征,则认为该特征更能体现文本的专有特性)。

特征权重=TF*IDF。

特征权重计算方法还有:用于VSM的信息熵算法,基于增益的对TFIDF改进算法算法等。

该方法常结合聚类算法一同使用。

基于词语共现图提取方法

思想:文本中两个特征经常共现在文本的同一段落,则认为两个特征在意义上是相互关联的,共现概率越高,关联越紧密。

由此计算每个特征节点重要性,即与其他特征同现指数连乘,选取最重要的节点作为关键词。

其中最简单的特征同现指数可以用两个特征同现频率表示。

该方法在小规模文本集时并不能很好的反映特征间的关系。

因此文本集的大小会影响算法的稳定性和准确性。

基于词语网络的方法

思想:它是词语共现图的发展,因此与同现图类似,每个特征为网络中的节点,网络的边表示特征间的关系,不同的是该算法引入了图论的模型及算法。

首先要提到最小世界网络(Small-World-Network)这个概念:具有高聚类系数,且平均路径长度短的网络。

其中图的聚类系数为所有节点的(实际边数/最多可能边数)和平均值;
图的平均路径长度即:网络图中,任意两个节点间最短路径边数的平均值。

    以上就是本篇文章【jiaba关键词提取提速策略&基于word2vec的关键词提取方法&python中文编码问题&人人网的关键词提取策略】的全部内容了,欢迎阅览 ! 文章地址:http://motor168.cxdr.cn/quote/145.html 
     行业      资讯      企业新闻      行情      企业黄页      同类资讯      网站地图      返回首页 珂云塔资讯移动 http://ch168.cxdr.cn/ , 查看更多