NLTK

NLTK官网 | NLTK-github | nltk_data - github | Jieba-github |


python中的itertools的使用详解

关于Reuters Corpora(路透社语料库)

文本去重算法:Minhash/Simhash/Klongsent


TF-IDF与余弦相似性的应用(一):自动提h取关键词

TF-IDF与余弦相似性的应用(二):找出相似文章

python文本相似度计算

python 文本相似度计算

文本主题模型之潜在语义索引(LSI)

数据挖掘之比较两个文本的相似度

文本相似度几种计算方法

Python+gensim-文本相似度分析


自然语言处理-专题

自然语言处理-专题代码

Python【jieba】词性标注表

文本清洗正则表达式


局部敏感哈希算法

局部敏感哈希算法原理和具体实现

Locality Sensitive Hashing(局部敏感哈希)

局部敏感哈希算法(Locality Sensitive Hashing) 局部敏感哈希——代码篇

使用SimHash进行海量文本去重

simhash与重复信息识别

lsh1-github

lsh2-github

lsh3-github

datasketch-LSH - github

functools --- 高阶函数和可调用对象上的操作

Python 模块简介 -- functools

基于LSH技术的试题相似度检测方法

基于LSH技术的试题相似度检测方法

LSH/lsh/cMinhash.pyx

cdef uint64_t INT64_MAX = 9223372036854775807

if isinstance(seeds, np.ndarray):
    self._seeds = seeds.astype(np.uint32)
else:
    self._seeds = np.array(random_state.randint(0, 1e6, seeds),
    
with nogil:
for s in range(num_seeds):
    minhash = INT64_MAX
    for i in range(strlen - char_ngram + 1):
        MurmurHash3_x64_128(c_str, char_ngram, seeds[s], hashes)
        if hashes[0] < minhash:
            minhash = hashes[0]
        c_str += 1

    # store the current minhash
    mem_view[s] = minhash

    # reset string pointer for next hash
    c_str -= strlen - char_ngram + 1
corpus	n. 文集;[计]语料库(复数:corpora)
stemmer n. 词干
sparse	adj. 稀疏的
vector	n. 矢量
Sparse Matrix Similarity	稀疏矩阵相似性
word2vec	word to vector
doc2bow	document to bag of words(词袋)

《自然语言处理入门》详细笔记

在线的比较成熟的语料库有哪些?

人民日报语料库

特朗普推特数据集


自然语言处理-介绍、入门与应用

Python NLTK 自然语言处理入门与例程

用Python进行自然语言处理 - 语言处理与Python

NLTK文本分析+jieba中文文本挖掘

自然语言分词工具

《用Python进行自然语言处理》归纳一

《用Python进行自然语言处理》归纳二


莫凡PI

搜索引擎中的 TF-IDF 检索算法

百度文档标签

使用nltk分析文本情感

机器学习、NLP面试

word2VECb降维向量图

小象问答


tensorflow-hub

数据集搜索

bert-as-service

Deep Learning for Human Language Processing (2020,Spring)

用Tensorflow进行中文自然语言处理分类实践

机器学习之数学之旅系列课程:

Deep Learning for Recommendation基于深度学习的推荐系统

基于贝叶斯算法进行新闻分类

word_cloud

计算向量距离


jieba分词

import jieba.analyse
import copy

# 将STOP_WORDS集合深度拷贝出来
stopwords0 = copy.deepcopy(jieba.analyse.default_tfidf.STOP_WORDS)
# 设置用户自定停用词集合之前,将停用词集合深度拷贝出来  
stopwords1 = copy.deepcopy(jieba.analyse.default_tfidf.stop_words)

# 设置用户自定停用词集合
jieba.analyse.set_stop_words("./data/stop_words.txt")
# 设置用户自定停用词集合之后,将停用词集合深度拷贝出来
stopwords2 =  copy.deepcopy(jieba.analyse.default_tfidf.stop_words)

print(stopwords0)
print(stopwords1)
print(stopwords2)

#对原有语料添加词语
jieba.add_word(word, freq=None, tag=None)
#自定义语料词库
jieba.load_userdict('./data/dict.txt')

NLTK

一个是官方的《Natural Language Processing with Python》,以介绍NLTK里的功能用法为主,
同时附带一些Python知识,同时国内陈涛同学友情翻译了一个中文版,这里可以看到:推荐《用Python进行自然语言处理》中文翻译-NLTK配套书;

另外一本是《Python Text Processing with NLTK 2.0 Cookbook》,这本书要深入一些,会涉及到NLTK的代码结构,同时会介绍如何定制自己的语料和模型等,相当不错。

download出错,直接从网上下载库
github网址:https://github.com/nltk/nltk_data/
package里面的内容才是我们需要的,把package文件夹复制到D:或者E:下面,然后把它改名为nltk_data。最后进入到该文件夹里面解压所有的压缩包即可。

nltk主要应用总结

获取和处理语料库 nltk.corpus 语料库和词典的标准化接口
字符串处理 nltk.tokenize, nltk.stem 分词,句子分解提取主干
搭配发现 nltk.collocations t-检验, 卡方,点互信息 PMI
词性标识符 nltk.tag n-gram,backoff,Brill,HMM,TnT
分类 nltk.classify, nltk.cluster 决策树,最大熵,贝叶斯,EM,k-means
分块 nltk.chunk 正则表达式,n-gram,命名实体
解析 nltk.parse 图表,基于特征,一致性,概率,依赖
语义解释 nltk.sem, nltk.inference λ演算,一阶逻辑,模型检验
指标评测 nltk.metrics 精度,召回率,协议系数
概率与估计 nltk.probability 频率分布,平滑概率分布
应用 nltk.app, nltk.chat 图形化的关键词排序,分析器,WordNet查看器,聊天机器人
语言学领域的工作 nltk.toolbox 处理 SIL工具箱格式的数据

nltk.text类介绍:

nltk.text.Text()类用于对文本进行初级的统计与分析,它接受一个词的列表作为参数。Text类提供了下列方法。

方法 作用
Text(words) 对象构造
concordance(word, width=79, lines=25) 显示word出现的上下文
common_contexts(words) 显示words出现的相同模式
similar(word) 显示word的相似词
collocations(num=20, window_size=2) 显示最常见的二词搭配
count(word) word出现的词数
dispersion_plot(words) 绘制words中文档中出现的位置图
vocab() 返回文章去重的词典

nltk.text.TextCollection类是Text的集合,提供下列方法

方法 作用
nltk.text.TextCollection([text1,text2,]) 对象构造
idf(term) 计算词term在语料库中的逆文档频率,即log总文章数文中出现term的文章数
tf(term,text) 统计term在text中的词频
tf_idf(term,text) 计算term在句子中的tf_idf,即tf*idf