中文分词&词向量化

NLP: 1.分词(代表:jieba)----2.向量化(包括字符向量化、词向量化、拼音向量化、词性向量化等,代表:word2vec,glove)----3.进一步分析 

 

一、jieba

“结巴”中文分词:做最好的 Python 中文分词组件,参考资料

特点

  • 支持四种分词模式:
    • 精确模式,试图将句子最精确地切开,适合文本分析;
    • 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义;
    • 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。
    • paddle模式,利用PaddlePaddle深度学习框架,训练序列标注(双向GRU)网络模型实现分词。同时支持词性标注。paddle模式使用需安装paddlepaddle-tiny,pip install paddlepaddle-tiny==1.6.1。目前paddle模式支持jieba v0.40及以上版本。jieba v0.40以下版本,请升级jieba,pip install jieba --upgradePaddlePaddle官网
  • 支持繁体分词
  • 支持自定义词典
  • MIT 授权协议

主要功能

  1. 分词。jieba.cut(), jieba.cut_for_search()
  2. 添加自定义词典。jieba.load_userdict(file_name)
  3. 关键词提取。a.基于tdfif:jieba.analyse.extract_tags(sentence, topK=20, withWeight=False, allowPOS=())  b.基于textrank:jieba.analyse.textrank(sentence, topK=20, withWeight=False, allowPOS=('ns', 'n', 'vn', 'v'))
  4. 词性标注。jieba.posseg.POSTokenizer(tokenizer=None),标注句子分词后每个词的词性
  5. 并行分词。jieba.enable_parallel(4),将目标文本按行分隔后,把各行文本分配到多个 Python 进程并行分词。
  6. Tokenize:返回词语在原文的起止位置
  7. ChineseAnalyzer for Whoosh 搜索引擎。from jieba.analyse import ChineseAnalyzer
  8. 命令行分词。使用示例:python -m jieba news.txt > cut_result.txt

分词

 

二、向量化

包括字符向量化、词向量化、拼音向量化、词性向量化等

代表算法:word2vec,包括了CBOW和skip-gram两种模式。

 其实词组向量化不止word2vec,还有比如Doc2Vec,FastTest等。

以CBOW算法为例说明计算流程:

            

 

用中心词前后的词,来计算中心词的词向量。

a.首先将前后词进行one-hot编码,1*V维度,V是字典长度。

b.1*V 乘以V*N的权重矩阵,1*N,并相加,得到隐藏层,Hidden layer,1*N。(N是我们设定的要求的词向量长度)

c.乘以N*V的权重系数,得到1*N的向量,就是我们要求的长度为N的该词的向量。

词向量化1 

 发表CBOW和Skip-gram算法的论文

 

【NLP学习笔记1】分词和词向量 

 

posted on 2020-03-23 15:06  静静的白桦林_andy  阅读(1041)  评论(0编辑  收藏  举报

导航