当前位置:   article > 正文

NLP文本预处理的一些方法_nlp中文预处理去除相似语句

nlp中文预处理去除相似语句
写在前面

随着bert等技术的兴起,在做文本方面比赛时,对于预处理这一块像中文分词,停用词过滤,词形还原,词干化,标点符号处理等变的不再这么重要。当然也可以从另一个角度来看,这些对于文本的预处理方法相当于减少输入的噪声,是可以让神经网络更具有鲁棒性的。所以以下内容可以作为一个知识储备在这里,在工作中是否需要用到它们全凭自己判断。

预处理方法
### 用于词形还原
from nltk import word_tokenize, pos_tag
from nltk.corpus import wordnet
from nltk.stem import WordNetLemmatizer

# 获取单词的词性
def get_wordnet_pos(tag):
    if tag.startswith('J'):
        return wordnet.ADJ
    elif tag.startswith('V'):
        return wordnet.VERB
    elif tag.startswith('N'):
        return wordnet.NOUN
    elif tag.startswith('R'):
        return wordnet.ADV
    else:
        return None

sentence = 'football is a family of team sports that involve, to varying degrees, kicking a ball to score a goal.'
tokens = word_tokenize(sentence)  # 分词
tagged_sent = pos_tag(tokens)     # 获取单词词性

wnl = WordNetLemmatizer()
lemmas_sent = []
for tag in tagged_sent:
    wordnet_pos = get_wordnet_pos(tag[1]) or wordnet.NOUN
    lemmas_sent.append(wnl.lemmatize(tag[0], pos=wordnet_pos)) # 词形还原

print(lemmas_sent)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29

输出结果为[‘football’, ‘be’, ‘a’, ‘family’, ‘of’, ‘team’, ‘sport’, ‘that’, ‘involve’, ‘,’, ‘to’, ‘vary’, ‘degree’, ‘,’, ‘kick’, ‘a’, ‘ball’, ‘to’, ‘score’, ‘a’, ‘goal’, ‘.’]

  • 词干化(stemming):很多情况下词干化后的形式和词形还原一样,但是无法保证词干化后的单词是一个正确的单词,比如将’cats’–>‘cat’, ‘leaves’–>‘leaf’
  • 同义词替换:比如将good,well,excellent等全部替换成good
  • 分词:比如将"hello world"变成“hello”,“world”,将"你好世界"变成"你好",“世界”
  • 标点过滤:比如网页上的文本,标点符号使用不规范,同时拥有多个都哈或句号,这种形式可以将多余的替换成一个,处理的主要应用方法为正则表达式
  • emoji表情处理:emoji表情对于做情感分析是很重要的,最好不要将其归咎为词向量中的unknown一类,如果知道文本中的emoji表情的出处,可以在这个emoji表情的出处找到对应的中文文本将其替换,比如大家常用的笑哭emoji直接替换成笑哭,或者英文形式;如果你有一套emoji预训练词向量,则将词向量中该emoji对应的词进行替换,如果没有,可以将该emoji加入到分词工具的词典中,保证分词时可以将emoji独立出来,如果在之后的任务中使用神经网络建模,可以保证emoji能够随机初始化成词向量,如果用主题模型的方式,也能够保证emoji成为词袋中词的一部分
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/350005
推荐阅读
相关标签
  

闽ICP备14008679号