第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在帶有POS標(biāo)簽的語料庫文件中更改短語動詞的詞序

如何在帶有POS標(biāo)簽的語料庫文件中更改短語動詞的詞序

藍(lán)山帝景 2021-03-22 13:13:44
我有一個帶有POS標(biāo)簽的并行語料庫文本文件,在該文件中我想對單詞進行重新排序,以便“可分離的短語動詞粒子”出現(xiàn)在短語動詞的“動詞”旁邊(“組成計劃”而不是'制定計劃')。用于統(tǒng)計機器翻譯系統(tǒng)中的預(yù)處理。以下是帶有POS標(biāo)簽的文本文件中的一些示例行:you_PRP意思是_VBP we_PRP應(yīng)該_MD kick_VB他們_PRP out_RP ._。don_VB't_NNP take_VB it_PRP off_RP直到_IN I_PRP say_VBP so_RB ._。please_VB help_VB the_DT man_NN out_RP ._。shut_VBZ it_PRP down_RP!_。我想將所有質(zhì)點(在示例中:out_RP,off_RP,out_RP,down_RP)移到最接近的前一個動詞(即與質(zhì)點組合在一起的動詞組成短語動詞)的旁邊。更改單詞順序后,各行的外觀應(yīng)如下所示:you_PRP意思是_VBP we_PRP應(yīng)該_MD kick_VB out_RP他們_PRP ._。don_VB't_NNP take_VB off_RP it_PRP直到_IN I_PRP say_VBP so_RB ._。please_VB help_VB out_RP the_DT man_NN ._。shut_VBZ down_RP it_PRP!_。到目前為止,我已經(jīng)嘗試使用python和正則表達(dá)式通過使用re.findall對問題進行排序:import re file=open('first100k.txt').read()matchline3='\w*_VB.?\s\w*_DT\s\w*_NN\s\w*_RP'wordorder1=re.findall(matchline3,file)print wordorder1這將找到單詞順序為1的所有短語動詞(請參見下文),但這是我所能做到的,因為我無法弄清楚如何將質(zhì)點移到動詞旁邊。任何想法如何正確解決此問題(不一定使用python和regex)?我希望能夠搜索所有短語動詞,并按以下單詞順序移動質(zhì)點:(使用的標(biāo)記來自Penn Treebank標(biāo)記集(http://www.ling.upenn.edu/courses/Fall_2003/ling001/penn_treebank_pos.html))(x表示可選字符,以便包含所有動詞形式,并且*表示通配符))* _VBx + * _ DT + * _ NN + * _ RP* _VBx + * _ DT + * _ NNS + * _ RP* _ VBx + * _DT + * _。JJ + * _ NN + * _ RP* _ VBx + * _DT + * _。JJ + * _ NNS + * _ RP* _VBx + * _ PRP $ + * _ NN + * _ RP* _VBx + * _ PRP $ + * _ NNS + * _ RP* _ VBx + * _PRP $ + * _。JJ + * _ NN + * _ RP* _ VBx + * _PRP $ + * _。JJ + * _ NNS + * _ RP* _VBx + * _ NNP + * _ RP* _VBx + * _ JJ + * _ NNP + * _ RP* _VBx + * _ NNPS + * _ RP* _VBx + * _ PRP + * _ RP預(yù)先感謝您的幫助!
查看完整描述

1 回答

?
弒天下

TA貢獻(xiàn)1818條經(jīng)驗 獲得超8個贊

我不建議在這里使用正則表達(dá)式。絕對不像在空格上分割后在每一行上迭代,可能重新排列列表并最終加入那樣,不那么直觀。您可以嘗試這樣的事情,


reordered_corpus = open('reordered_corpus.txt', 'w')

with open('corpus.txt', 'r') as corpus:

    for phrase in corpus:

        phrase = phrase.split()                 # split on whitespace

        vb_index = rp_index = -1                # variables for the indices

        for i, word_pos in enumerate(phrase):

            pos = word_pos.split('_')[1]        # POS at index 1 splitting on _

            if pos == 'VB' or pos == 'VBZ':     # can add more verb POS tags

                vb_index = i

            elif vb_index >= 0 and pos == 'RP': # or more particle POS tags

                rp_index = i

                break                           # found both so can stop

        if vb_index >= 0 and rp_index >= 0:     # do any rearranging

            phrase = phrase[:vb_index+1] + [phrase[rp_index]] + \

                     phrase[vb_index+1:rp_index] + phrase[rp_index+1:]

        reordered_corpus.write(' '.join(word_pos for word_pos in phrase)+'\n')

reordered_corpus.close()

使用此代碼,如果corpus.txt讀取,


you_PRP mean_VBP we_PRP should_MD kick_VB them_PRP out_RP ._.

don_VB 't_NNP take_VB it_PRP off_RP until_IN I_PRP say_VBP so_RB ._.

please_VB help_VB the_DT man_NN out_RP ._.

shut_VBZ it_PRP down_RP !_.

運行后,reordered_corpus.txt會,


you_PRP mean_VBP we_PRP should_MD kick_VB out_RP them_PRP ._.

don_VB 't_NNP take_VB off_RP it_PRP until_IN I_PRP say_VBP so_RB ._.

please_VB help_VB out_RP the_DT man_NN ._.

shut_VBZ down_RP it_PRP !_.


查看完整回答
反對 回復(fù) 2021-03-31
  • 1 回答
  • 0 關(guān)注
  • 191 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號