【NLP】特征提取

本文介绍自然语言处理中的特征提取,包括分词方法如正向最大、逆向最大和双向最大匹配法,以及词频统计。讨论了unigram、bigram和trigram在语言模型中的应用,并提到了文本矩阵化的步骤,如使用词袋模型进行词级矩阵化,涉及分词、去停用词和文档向量化。
摘要由CSDN通过智能技术生成

【任务3 - 特征提取】

  1. 基本文本处理技能
    1.1 分词的概念(分词的正向最大、逆向最大、双向最大匹配法);
    1.2 词、字符频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)
  2. 2.1 语言模型中unigram、bigram、trigram的概念;
    2.2 unigram、bigram频率统计;(可以使用Python中的collections.Counter模块,也可以自己寻找其他好用的库)
  3. 文本矩阵化:要求采用词袋模型且是词级别的矩阵化
    步骤有:
    3.1 分词(可采用结巴分词来进行分词操作,其他库也可以);
    3.2 去停用词;构造词表。
    3.3 每篇文档的向量化。

正向最大(Maximum Matching, MM):
算法思想:
从左到右将待分词文本中的几个连续字符与词表匹配,如果匹配上,则切分出一个词。但这里有一个问题:要做到最大匹配,并不是第一次匹配到就可以切分的 。我们来举个例子:

待分词文本: content[]={“中”,“华”,“民”,“族”,“从”,“此”,“站”,“起”,“来”,“了”,"。"}

词表: dict[]={“中华”, “中华民族” , “从此”,“站起来”}

(1) 从content[1]开始,当扫描到content[2]的时候,发现"中华"已经在词表dict[]中了。但还不能切分出来,因为我们不知道后面的词语能不能组成更长的词(最大匹配)。

(2) 继续扫描content[3],发现"中华民"并不是dict[]中的词。但是我们还不能确定是否前面找到的"中华"已经是最大的词了。因为"中华民"是dict[2]的前缀。

(3) 扫描content[4],发现"中华民族"是dict[]中的词。继续扫描下去:

(4) 当扫描content[5]的时候,发现"中华民族从"并不是词表中的词,也不是词的前缀。因此可以切分出前面最大的词——“中华民族”。

由此可见,最大匹配出的词必须保证下一个扫描不是词表中的词或词的前缀才可以结束。

sudo-code

result = []
right_seq = input_seq
while True:
    select_seq,left_seq = get_select_seq(right_seq)
    seg_word,seg_word_right = selectMaxLenInDict(select_seq)
    result.append(seg_seq)
    right_seq = seg_word_right+left_seq
    if right_seq=="":
        break

def selectMaxLenInDict(_seq):
    for idx in range(len(select_seq),
  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
引用中提到了一些关于自然语言处理中特征提取的问题,其中包括如何构建一个系统来从非结构化文本中提取结构化数据,如何识别文本描述中的实体和关系,以及如何使用语料库来训练和评估模型。对于Python自然语言处理中的特征提取,可以采用以下方法和步骤: 1. 词袋模型(Bag of Words):将文本中的每个单词作为一个特征,并统计其出现的频次。可以使用Python中的CountVectorizer或TfidfVectorizer来实现。 2. n-gram模型:将连续的n个单词作为一个特征,可以捕捉到更多的上下文信息。可以使用Python中的CountVectorizer或TfidfVectorizer中设置ngram_range参数来实现。 3. 词嵌入(Word Embedding):将每个单词映射到一个低维向量空间中,可以捕捉到单词之间的语义关系。可以使用Python中的Word2Vec、GloVe或FastText等库来进行词嵌入。 4. 句法分析特征:通过分析句子的句法结构,提取特定的句法规则或模式作为特征。可以使用Python中的NLTK或Spacy等库来进行句法分析。 5. 实体识别特征:识别文本中的人名、地名、组织机构等实体,并将其作为特征。可以使用Python中的NLTK或Spacy等库来进行实体识别。 6. 主题模型特征:通过对文本进行主题建模,提取文本的主题分布作为特征。可以使用Python中的LDA或LSA等库来进行主题建模。 以上是一些常用的Python自然语言处理中特征提取的方法和步骤,根据具体的任务和数据集的特点,可以选择合适的方法来提取特征,并进行相应的处理和分析。<span class="em">1</span><span class="em">2</span>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值