自然语言的处理 nlp
分词
- 得到语言首先使用分词机器进行分词
- 首先使用正则表达式过滤标点 空格,一般使用NLTK进行首次分词
- n-gram 相邻的词组成短语,更有意义。
- 停用词的过滤 a an the of之类
- 大小写转换
- 词干还原house houses houseing 还原成house ,nltk.stem.porter包还原成原来的词
- 词形归并better good goods best 还原成good,使用nltk.downlad('wordnet') ,需要设定分析的词词性,比如名词还是动词
- 基于分词的情感分析,使用vader进行分词检测语句的情感倾向,是高兴还是生气,表情包,语气词等设定特定词的情感得分,会有总体和乐观、悲观、中性四种评分。
- 朴素贝叶斯 根据下载的模型设定情感分析分值,用这个来衡量情感,相比vader 不用自己维护情感分值,并且可以基于各个数据集进行评估。
词中的数学
- 词袋无序分词,单个词出现次数/文档中词数量 = 词项频率 分析一个词对一个文档的重要性,数量大重要性大;nltk使用停用词库过滤停用词nltk.download('stopwords',quiet=True),nltk.corpus.stopwords.words('english')完成对英文停用词的下载。
- 把词频做成数组,数据就是向量,计算向量之间的余玄值确定两个文档之间描述的内容是否一致。
- 齐普夫定律对于一个大型的文档,出现频率最高的词是第二的两倍,是第三的三倍,是第四的四倍,大致遵循随坐标递减的效果。
- 相同主题的文档,相同词在文档中出现的频率使用对数更能确定词与文档的相关性;tf=关键字在文档中出现的次数/文档的长度;idf =lg文档总数/包含关键字的文档数;tf-idf =tf*idf得出得结果,即关键词在给定得文档中赋一个重要度值。多个词得重要度组成向量,向量得余弦相似度高我们认为这两个文档相似,可以作为搜索引擎抓取文章得依据。
词频背后的语义
- 使用不同文字描述相同内容的文档,在词频向量上的余玄没有相同,所以描述不了相同的语义,需要使用主题向量来描述用不同语言描述的内容。
一些想法,一些随笔,零零碎碎整理下思路。