停用词

Elasticsearch自定义分析器

巧了我就是萌 提交于 2020-02-29 10:05:21
关于分析器 ES中默认使用的是标准分析器(standard analyzer)。如果需要对某个字段使用其他分析器,可以在映射中该字段下说明。例如: PUT /my_index { "mappings": { "blog": { "properties": { "title": { "type": "string", "fields": { "english": { "type": "string", "analyzer": "english" } } } } } } } 在上面: 主 title 字段使用 `standard`(标准)分析器。 title.english 子字段使用 `english`(英语)分析器。 关于自定义分析器 自定义分析器基于标准分析器(或其他ES已有的分析器),通过搭配字符过滤器、分词器和词单元过滤器,添加特定的配置,达到提高查询效果的作用。 1 字符过滤器 很多时候,我们需要处理的文本会是除了干净文本之外的任何文本。例如HTML文本直接进行分词会得到糟糕的效果。因此在分词之前整理文本会提升输出结果的质量。 HTML分词 业务不涉及,略 整理标点符号 可能也不需要。 2 分词器 standard 分词器 使用 Unicode 文本分割算法。它是大多数语言分词的一个合理的起点,特别是西方语言。 3 词汇单元过滤器 值得注意的是,当使用多个过滤器

分词并去停用词自定义函数:seg_word(sentence)

南笙酒味 提交于 2020-02-15 10:15:04
分词并去停用词自定义函数:seg_word(sentence)。 import jieba def seg_word ( sentence ) : """使用jieba对文档分词""" seg_list = jieba . cut ( sentence ) # 读取停用词文件 stopword_list = [ k . strip ( ) for k in open ( 'stopwords.txt' , encoding = 'utf8' ) . readlines ( ) if k . strip ( ) != '' ] # 去除停用词 return list ( filter ( lambda x : x not in stopword_list , seg_list ) ) print ( seg_word ( "今天是开心的一天" ) ) 输入一个句子"今天是开心的一天",函数返回值为:[‘今天’, ‘开心’, ‘一天’]。 来源: CSDN 作者: 北青萝、 链接: https://blog.csdn.net/weixin_43919570/article/details/104310685

基于长短时神经网络(LSTM)+word2vec的情感分析

只谈情不闲聊 提交于 2020-01-20 00:53:29
前言: 毕业前的项目,最近终于有时间整理个博客出来。使用的keras+gensim完成,也参考了互联网很多相关资料。最终效果只有88%左右,不过优化空间很大,只用作学习demo 数据集使用的是谭松波酒店评论数据集 停用词我自己整理了一个停用词词典 分享给大家 链接:https://pan.baidu.com/s/1ZkMGAUH7VSxJALWBs41iKQ 提取码:2c1e 1.数据处理 这一步主要是对评论文本做清洗,在这里只做简单的 去停用词 。 首先写一个去停用词的方法 import jieba f = open ( './stop_words.txt' , encoding = 'utf-8' ) # 加载停用词 stopwords = [ i . replace ( "\n" , "" ) for i in f . readlines ( ) ] # 停用词表 def del_stop_words ( text ) : "" " 删除每个文本中的停用词 : param text : : return : "" " word_ls = jieba . lcut ( text ) word_ls = [ i for i in word_ls if i not in stopwords ] return word_ls 然后读取正面评论与负面评论的语料 并进行清洗 with

Kaggle spooky NLP

只愿长相守 提交于 2019-12-17 18:54:41
https://www.kaggle.com/arthurtok/spooky-nlp-and-topic-modelling-tutorial 介绍 在本笔记本中,我将对这个Spooky Author数据集的主题建模进行非常基本的尝试。主题建模是我们尝试根据基础文档和文本语料库中的单词来发现抽象主题或“主题”的过程。我将在这里介绍两种标准的主题建模技术,第一种是称为潜在Dirichlet分配(LDA)的技术,第二种是非负矩阵分解(NMF)。我还将借此机会介绍一些自然语言处理基础知识,例如原始文本的标记化,词干化和向量化,这些也有望在用学习模型进行预测时派上用场。 该笔记本的概述如下: 探索性数据分析(EDA)和Wordclouds-通过生成简单的统计数据(例如,不同作者的词频)以及绘制一些词云(带有图像蒙版)来分析数据。 带有NLTK(自然语言工具包)的自然语言处理(NLP)-引入了基本的文本处理方法,例如标记化,停止单词删除,通过术语频率(TF)和反向文档频率(TF-IDF)提取文本和对向量进行矢量化 使用LDA和NNMF进行主题建模-实现潜在狄利克雷分配(LDA)和非负矩阵分解(NMF)的两种主题建模技术。 根据比赛页面,我们已经提供了三种不同的作者姓名缩写,这些姓名缩写与实际作者的映射如下: (如果单击其名称,则指向其Wikipedia页面配置文件的链接) EAP-埃德加

NLP2

送分小仙女□ 提交于 2019-12-15 01:13:22
本文内容为 贪心学院 NLP课程的个人总结。 大纲: 拼写错误纠正 词汇过滤 文本表示 文本相似度计算 拼写错误纠正(小案例) 拼写错误纠正 :spell correction。根据用户的错误输入产生理应正确的输出。譬如天起(输入) --> 天气(输出),theris --> theirs,机器学系 --> 机器学习等。 方法 :根据用户输入计算编辑距离。 编辑距离 编辑距离 :edit distance。编辑距离的计算是指通过插入(insert)、删除(delete)和替换(操作让词2变为词1。每个操作的成本为1。 例子 : 输入 目标 成本 therr there 1 [替换r为e] their 1 [替换r为i] thesis 3 [替换r,r为s,i,插入一个s] 编辑距离的编程实现 :计算编辑距离的编程是动态规划问题。 LeetCode:计算最小编辑距离 如何确定编辑距离最小的词? 方法1: 把词典中的所有词都循环一遍,计算与输入的编辑距离,输出编辑距离最小的词。但是时间复杂度较高,O(V),其中V是词库所有词汇的数量。 方法2 :根据用户的输入,生成编辑距离为1和2的字符串,通过 过滤 的方式来选择输出。这里过滤的意思是指计算出现 每个 编辑距离为1和2字符串的概率,选择概率最大的一个来作为输出。 如何生成编辑距离为1或者2的字符串? 编辑距离为1:通过增、删

第2周个人作业:WordCount

眉间皱痕 提交于 2019-12-09 09:44:40
Github项目地址: https://github.com/jianjake/word- 1、PSP表格 PSP2.1 表格 PSP2.1 PSP 阶段 预估耗时 (分钟) 实际耗时 (分钟) Planning 计划 · Estimate · 估计这个任务需要多少时间 20 10 Development 开发 · Analysis · 需求分析 (包括学习新技术) 20 10 · Design Spec · 生成设计文档 20 10 · Design Review · 设计复审 (和同事审核设计文档) 120 130 · Coding Standard · 代码规范 (为目前的开发制定合适的规范) 120 130 · Design · 具体设计 30 20 · Coding · 具体编码 240 250 · Code Review · 代码复审 30 30 · Test · 测试(自我测试,修改代码,提交修改) 30 30 Reporting 报告 · Test Report · 测试报告 20 30 · Size Measurement · 计算工作量 30 30 · Postmortem & Process Improvement Plan · 事后总结, 并提出过程改进计划 30 30 合计 710 680 2、解题思路 1、拿到题后,一看输入格式wc.exe -c

结巴分词

匿名 (未验证) 提交于 2019-12-03 00:25:02
python结巴分词、jieba加载停用词表 2017年09月03日 21:50:19 阅读数:32332 python结巴分词 python结巴分词 jieba中文分词简介 中文分词的原理 1 基于规则 2 基于统计 3 jieba的原理 安装结巴jieba jieba三种分词模式以及其应用 jieba增强功能-加载自定义词典 1 载入新自定义词典 2 载入停用词表 jieba分词的其他应用 1 关键词提取 2 词性标注 用jieba分词实战含文件的读取与存储 1 jieba中文分词简介 中文分词是中文NLP的第一步,一个优秀的分词系统取决于足够的语料和完善的模型,很多机构和公司也都会开发和维护自己的分词系统。 这里推荐的是一款完全开源、简单易用的分词工具,jieba中文分词。官网在这里, https://github.com/fxsjy/jieba 2 中文分词的原理 中文分词的模型实现主要分类两大类:基于规则和基于统计。 2.1 基于规则 基于规则是指根据一个已有的词典,采用前向最大匹配、后向最大匹配、双向最大匹配等人工设定的规则来进行分词。 例如对于“上海自来水来自海上”这句话,使用前向最大匹配,即从前向后扫描,使分出来的词存在于词典中并且尽可能长,则可以得到“上海/自来水/来自/海上”。这类方法思想简单且易于实现,对数据量的要求也不高。 当然

jieba分词 简单实现步骤

匿名 (未验证) 提交于 2019-12-03 00:21:02
jieba分词在处理中文文本分析是比较常用的工具,这里主要是基于自学后得到的实现文本jieba分词的常用流程: 加载自定义词典――>获取关键词――>去除停用词――>数据处理 1、加载自定义词典 jieba分词自带词典,可能不能包括一些专业词汇,会造成分词结果不准确,可以通过自定义词典解决这一问题。 # 加载自定义词典 jieba.load_userdict( "newdic.txt" ) 其中“newdic.txt”是自定义词典的路径。其中自定义词典的格式:一个词占一行;每一行分三部分,一部分为词语,另一部分为词频(可省略),最后为词性(可省略),用空格隔开 2、获取关键词 主要借助jieba.cut()和jieba.lcut()两个函数完成,两个函数生成的对象不同,要注意后续操作。 # jieba.cut 生成generator # 全模式分词 seg_list = jieba.cut( "我来北京上学" , cut_all=True) print( "Full Model " + '/' .join(seg_list)) # 精确模式 (默认) seg_list = jieba.cut( "我来北京上学" , cut_all=False) # jieba.lcut 生成List tags = jieba.lcut(text) tags_df = pd.DataFrame({

简单的中文分词和词向量化

霸气de小男生 提交于 2019-11-26 03:36:06
**在做分词前需要做的准备: ** (1):已经预处理过的需要分词的语料(需要分词的语料要符合结巴分词的要求,每句一行,并且以句号做结尾) (2):需要一份相关方面的词典用于更加专业化的分词,单纯的使用结巴分词不能很好的分出你需要的词,会影响到你以后词向量化阶段。 (3):需要一份停用词表,因为结巴分词不能很好的把一些没有实际意义的词去掉,这样此会影响到后面词向量化阶段。停用词表的作用就是去掉一些没有意义的词语,单字,或者特殊符号。主要你需要去掉的东西,你把它写在停用词表中就可以。停用词表可以在网上下载,停用词表一般分为很多种,有专门的中文停用词表。在做分词的时候看需要下载,一般下载一个比较全的停用词表就行(停用词表一般包括特殊符号和中文一些无意义词)。 此处需要注意,在保存停用词表的时候注意保存为编码格式utf-8的格式储存为txt格式. 开始分词: 代码如下 import codecs import jieba infile = 'date_open_yuliao.txt' ##你需要分词的语料的文件名 outfile = 'data_open_yuliaochuli2.txt' ##分词完成后保存的文件名 jieba . load_userdict ( "data_open_dict.txt" ) ##用结巴加载你准备好的专用分词的词典 descsFile = codecs