📜  自然语言处理 |交换动词短语和名词红衣主教

📅  最后修改于: 2022-05-13 01:55:22.988000             🧑  作者: Mango

自然语言处理 |交换动词短语和名词红衣主教

需要交换动词短语吗?
消除特定短语中的被动语态。这种归一化有助于频率分析,将两个明显不同的短语计算为同一个短语。

下面的代码是swap_verb_phrase class ,它将块的左侧与右侧交换,使用动词作为枢轴点。它使用定义的first_chunk_index()函数来查找要旋转的动词。

代码 #1:swap_verb_phrase 类来交换动词

def swap_verb_phrase(chunk):
    def vbpred(wt):
        word, tag = wt
        return tag != 'VBG' and tag.startswith('VB') and len(tag) > 2
      
    vbidx = first_chunk_index(chunk, vbpred)
      
    if vbidx is None:
        return chunk
      
    return chunk[vbidx + 1:] + chunk[:vbidx]


代码 #2:评估 swap_verb_phrase

swap_verb_phrase([('the', 'DT'), ('book', 'NN'),
               ('was', 'VBD'), ('great', 'JJ')])

输出 :

[('great', 'JJ'), ('the', 'DT'), ('book', 'NN')]

代码不围绕动名词旋转,因为它们通常用于描述名词。

代码#3:

swap_verb_phrase([('this', 'DT'), 
                  ('gripping', 'VBG'), ('book', 'NN'), 
                  ('is', 'VBZ'), ('fantastic', 'JJ')])

输出 :

[('fantastic', 'JJ'), ('this', 'DT'), ('gripping', 'VBG'), ('book', 'NN')]

交换名词红衣主教:
块中的红衣主教指的是一个数字,并被标记为 CD。这些红衣主教出现在 acardinals 名词之前。交换名词cardianals有助于将cardinal放在名词之前。

代码#4:交换名词基数

swap_noun_cardinal([('Dec.', 'NNP'), ('10', 'CD')])
  
swap_noun_cardinal([('the', 'DT'), ('top', 'NN'), ('10', 'CD')])

输出 :

[('10', 'CD'), ('Dec.', 'NNP')]

[('the', 'DT'), ('10', 'CD'), ('top', 'NN')]