句動詞の「動詞」の隣に「分離可能な句動詞助詞」が表示されるように、単語の並べ替えを行いたい POS タグ付きの対訳コーパス テキスト ファイルがあります (「計画を立てる」の代わりに「計画を立てる」) . これは、統計機械翻訳システムでの前処理に使用されます。POS タグ付きテキスト ファイルの行の例を次に示します。
- you_PRP mean_VBP we_PRP should_MD kick_VB they_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 !_.
すべての助詞 (例: out_RP、off_RP、out_RP、down_RP) を直前の動詞 (助詞と組み合わせて句動詞を構成する動詞) のすぐ隣に移動したいと考えています。語順を変更した後の行は次のようになります。
- you_PRP mean_VBP we_PRP should_MD kick_VB out_RP それら_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 !_.
これまでのところ、Python と正規表現を使用して、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 (以下を参照) で検索されますが、助詞を動詞の隣に移動する方法が分からないため、これまでのところです。この問題を適切に解決する方法はありますか (必ずしも python と正規表現を使用する必要はありません)。すべての句動詞を検索し、次の語順で助詞を移動できるようにしたいと考えています。
(使用されているタグは、Penn Treebank タグセット ( 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
事前に、あなたの助けに感謝します!