首页 > 其他分享 >NLP基础-词性标注应用去除停用词

NLP基础-词性标注应用去除停用词

时间:2023-02-06 16:35:09浏览次数:40  
标签:NLP 词性 return generator pos 用词 pair word


词性标注-去除停用词

词性标注就是对分词后的词性进行标识,通常分词后其词性也就直接输出了,而词性标注的应用就是可以通过词性来进行过滤(去除助词停用词等),从而得到更有效的文本。

方法是首先自定义字典–确定不想要的词性,第二步是把文件读进来后,先进行分词,根据分词的词语的词性对照词典中的词进行排除并重新拼接组合。

extract_data.py:

from tokenizer import seg_sentences
fp=open("text.txt",'r',encoding='utf8')
fout=open("out.txt",'w',encoding='utf8')
for line in fp:
line=line.strip()
if len(line)>0:
fout.write(' '.join(seg_sentences(line))+"\n")
fout.close()

tokenizer.py:

import os,re

from jpype import *
startJVM(getDefaultJVMPath(),r"-Djava.class.path=E:\NLP\hanlp\hanlp-1.5.0.jar;E:\NLP\hanlp",
"-Xms1g",
"-Xmx1g")
Tokenizer = JClass('com.hankcs.hanlp.tokenizer.StandardTokenizer')

drop_pos_set=set(['xu','xx','y','yg','wh','wky','wkz','wp','ws','wyy','wyz','wb','u','ud','ude1','ude2','ude3','udeng','udh','p','rr'])
def to_string(sentence,return_generator=False):
# 遍历每行的文本,将其切分为词语和词性,并作为元组返回
if return_generator:
# 通过.toString()方法描述迭代器内容
return (word_pos_item.toString().split('/') for word_pos_item in Tokenizer.segment(sentence))
else:
return [(word_pos_item.toString().split('/')[0],word_pos_item.toString().split('/')[1]) for word_pos_item in Tokenizer.segment(sentence)]
def seg_sentences(sentence,with_filter=True,return_generator=False):
segs=to_string(sentence,return_generator=return_generator)
# 使用with_filter来标识是否要删去常用词
if with_filter:
# 如果不在自定义去除的词典中,则保留
g = [word_pos_pair[0] for word_pos_pair in segs if len(word_pos_pair)==2 and word_pos_pair[0]!=' ' and word_pos_pair[1] not in drop_pos_set]
else:
g = [word_pos_pair[0] for word_pos_pair in segs if len(word_pos_pair)==2 and word_pos_pair[0]!=' ']
return iter(g) if return_generator else g

处理结果:

NLP基础-词性标注应用去除停用词_词性


标签:NLP,词性,return,generator,pos,用词,pair,word
From: https://blog.51cto.com/u_15955938/6039480

相关文章

  • NLP基础-命名实体识别(一)基于规则
    命名实体识别命名实体识别(NamedEntityRecognition,简称NER)与自动分词,词性标注一样,命名实体识别也是自然语言处理中的一个基础任务,其目的是识别语料中的人名、地名、组织机......
  • 2023计算机领域顶会(A类)以及ACL 2023自然语言处理(NLP)研究子方向领域汇总
    2023年的计算语言学协会年会(ACL2023)共包含26个领域,代表着当前前计算语言学和自然语言处理研究的不同方面。每个领域都有一组相关联的关键字来描述其潜在的子领域,这些子领......
  • NLP之预训练语言模型GPT
    目录1引言GPT适配下游任务GPT代码例子调用huggingface的模型微调用在其他任务上1引言在自然语言处理领域中,预训练模型通常指代的是预训练语言模型。广义上的预训练语言模......
  • NLP入门1——李宏毅网课笔记
    近日因为项目需要,开始恶补预习NLP的相关知识。以前也看过两本相关书籍,但是都十分浅显。这次准备详细的学一下并记录。李宏毅老师的网课是DeepLearningforHumanLangua......
  • NLP之引言
    目录自然语言发展史第一代统计学习第二代深度学习和词向量第三代大模型预训练加微调绪论自然语言处理的难点自然语言处理任务体系任务层级任务类别研究对象与层次转到了NL......
  • 【如何提高IT运维效率】深度解读京东云基于NLP的运维日志异常检测AIOps落地实践
    作者:京东科技 张宪波、张静、李东江基于NLP技术对运维日志聚类,从日志角度快速发现线上业务问题日志在IT行业中被广泛使用,日志的异常检测对于识别系统的运行状态至关重......
  • NLP文本分类挑战赛(撰写中)
    竞赛信息零基础入门NLP-新闻文本分类竞赛讲解内容来源:https://www.bilibili.com/video/BV19S4y1E7N8/?spm_id_from=333.788&vd_source=ec0dfe3d40081b44c0160eacc0f39d0......
  • NLP基础知识学习掌握
    NLP入门总览教材推荐:实用文章NLP领域的重要模型100行代码完成的NLP任务好的课程NLP领域的几个研究方向与公共数据集NLP的基本方法和流程NLP基础知识1......
  • 深度神经网络在NLP的应用!
     Datawhale干货 作者:张泽,华东师范大学,Datawhale优秀学习者深度学习正在给自然语言处理带来巨大的变革,例如机器翻译,情感分析,问答系统等落地实践。深度学习对NLP的影响主要......
  • NLP入门必知必会(一):Word Vectors
     Datawhale干货 作者:芦冬生,Datawhale优秀学习者,北京理工大学自然语言处理(NLP)是信息时代最重要的技术之一,也是人工智能的重要组成部分。NLP的应用无处不在,因为人们几乎......