NLP一周总结(一)

来源:互联网 发布:excel表函数数据分类 编辑:程序博客网 时间:2024/06/01 01:34

1.jieba在ubuntu环境下的安装,命令行中输入

pip install jieba//注意不要进入python环境中,就在系统环境中输入

import jiebastr=">>> str="网络可以被看作未经标注的巨大的语料库。网络搜索引擎提供了一个有效的手段,搜索">>> for t in result:...      print (t)>>> result= jieba.cut(str)>>> for t in result:...     print (t)...网络可以被看作未经标注的巨大的语料库。网络搜索引擎提供了一个有效的手段,搜索

可以看出jieba的分词效果对于日常的本文比较理想,以后将尝试医学的专业文本的分词。

2.word embedding

word embedding实际上就是把分词后的内容转化为词向量的过程,这里是用python中的gensim来实现此功能

这里对稀疏向量和密集向量做一点注释(以下摘自百度百科)

密集向量和稀疏向量的区别: 密集向量的值就是一个普通的Double数组 而稀疏向量由两个并列的 数组indices和values组成 

例如:

向量(1.0,0.0,1.0,3.0)

用密集格式表示为[1.0,0.0,1.0,3.0]

用稀疏格式表示为(4,[0,2,3],[1.0,1.0,3.0]) 第一个4表示向量的长度(元素个数),[0,2,3]就是indices数组,[1.0,1.0,3.0]是values数组 表示向量0的位置的值是1.0,2的位置的值是1.0,而3的位置的值是3.0,其他的位置都是0


3.TF-IDF

TF-IDF(term frequency–inverse document frequency)是一种用于信息检索与数据挖掘的常用加权技术。TF意思是词频(Term Frequency),IDF意思是逆向文件频率(Inverse Document Frequency)。

有很多不同的数学公式可以用来计算TF-IDF。这边的例子以上述的数学公式来计算。词频 (TF) 是一词语出现的次数除以该文件的总词语数。假如一篇文件的总词语数是100个,而词语“母牛”出现了3次,那么“母牛”一词在该文件中的词频就是3/100=0.03。一个计算文件频率 (IDF) 的方法是文件集里包含的文件总数除以测定有多少份文件出现过“母牛”一词。所以,如果“母牛”一词在1,000份文件出现过,而文件总数是10,000,000份的话,其逆向文件频率就是 lg10,000,000 / 1,000)=4。最后的TF-IDF的分数为0.03 * 4=0.12。

4.gensimport gensim

    import sysf= open("C://Users/Administrator/Documents/testjieguo.txt","r")model=gensim.models.Word2Vec(f,size=200)
//jieba分词需要将/替换为空格不然会提示you must first build vocabulary before training the model
#!/usr/bin/env python# -*- coding: utf-8 -*-from gensim.models import word2vecimport logging# 主程序logging.basicConfig(format='%(asctime)s : %(levelname)s : %(message)s', level=logging.INFO)sentences = word2vec.Text8Corpus(u"C:\\Users\\83704\\Desktop\\test\\fortest.txt")  # 加载语料model = word2vec.Word2Vec(sentences, size=200)  # 计算两个词的相似度/相关程度y1 = model.similarity(u"行", u"好")print u"【行】和【好】的相似度为:", y1print "--------\n"



原创粉丝点击