NLP-learning-3

本文介绍了自然语言处理中特征提取的过程,包括基本文本处理技能,如正向、逆向和双向最大分词方法,以及词、字符频率统计。还详细讲解了如何进行文本矩阵化,特别是采用词袋模型进行词级别的矩阵化,涉及分词、去停用词和文档向量化等步骤。
摘要由CSDN通过智能技术生成

Task 3 特征提取

1. 基本文本处理技能

1.1 分词的概念(分词的正向最大、逆向最大、双向最大匹配法);

  • 正向最大

  如果叫成最长正向分词要更形象一些,是一种分治+贪婪的思想,并不一时处理全部串,而是分别处理预先设立长度的每一段,在每一段中求取最长的并且出现在字典里面的词。例如:abcdefabcdef,预先设立的最大长度为3。所以,先从串的开始截取长度为三的子串,即abcabc,如果abcabc出现在字典中,那么abcabc将作为分词结果,接着以相同方式处理defdef;如果abcabc没出现在字典里面,则从右边减少一个字符,再次匹配字典,即abab匹配,减少的字符将加入之前未选择的字符集里面作下一次匹配,这里是cdefcdef,如果一个串没匹配到长度大于1的字典词,则返回最左边的字符作为该串的分词结果,也就是abab如果没有匹配到,无论aa是否在字典中,都将作为分词结果。

  • 逆向最大

  有了正向最大分词,逆向就很好理解了,正向是从前向后选取最大长度的串,然后从选取串的尾部向前匹配字典词,删除右边的字符。逆向最大便是从后向前选取最大长度的串,从选取串开始向后匹配字典词,而删减的也便是左边的字符。

  • 双向最大匹配法

  双向就是结合正向最大和逆向最大的结果,对两个结果进行比较,从而决定正确的分词方式,当前向和逆向分词数量不相等的时候,选择数量较少的那个分词结果。如果分词数量相同,则依次比较分词结果,相应位置如果分词相同,则选取为最后的结果中,如果相应位置分词结果不一样则选取字符较少的那个最为分词结果。

  • 总结

  正向、逆向、双向最大分词是最基本的分词方法,但分词准确性并不很高,常常是作为分词的Baseline使用。这类方法的实现比较简单,其中,可以利用字典树(Tire Tree)来实现,可参见:http://blog.csdn.net/yangyan19870319/article/details/6399871的实现方法。

# -*- coding: utf-8 -*-
"""
Created on Thu Nov 22 15:28:42 2018
NLP learning
@author: jack
"""

class IMM(object):
   def __init__(self,dic_path):
       self.dictionary = set()
       self.maximum= 0
       
       with open(dic_path,'r',encoding = 'utf-8') as f:
           for line in f:
               l
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值