我想将单词(例如,动词,副词......)替换为除形容词和名词之外的一些特殊字符串(例如,“NIL”)。
也就是说,对于文本:
无政府主义起源于首先用于反对早期工人阶级激进的滥用术语
我首先进行POS标记(通用格式),从而产生标记格式:
无政府主义/ NOUN起源/ VERB为/ ADP a / DET术语/ NOUN / ADP滥用/ NOUN第一/ ADV使用/ VERB对/ ADP早期/ ADJ工作/ NOUN类/ NOUN激进/ NOUN
我希望得到这样的文字:
无政府主义/ NOUN NIL NIL NIL NIL / NOUN NIL滥用/ NOUN NIL NIL NIL NIL工作/ NOUN类/ NOUN激进/ NOUN
保留名词和形容词,同时用特殊字符串替换其他单词(如“NIL”)。
在Python中有没有一种有效的方法,我的语料库大小可能是10G +。
非常感谢!
答案 0 :(得分:2)
您也可以使用此正则表达式\w*/(?!NOUN)[A-Z]*
>>> import re
>>> s = "anarchism/NOUN originated/VERB as/ADP a/DET term/NOUN of/ADP abuse/NOUN first/ADV used/VERB against/ADP early/ADJ working/NOUN class/NOUN radicals/NOUN"
>>> re.sub("\w*/(?!NOUN)[A-Z]*","NIL",s)
'anarchism/NOUN NIL NIL NIL term/NOUN NIL abuse/NOUN NIL NIL NIL NIL working/NOUN class/NOUN radicals/NOUN'
您可以对其进行测试here。
答案 1 :(得分:1)
尝试将字符串拆分为每个单词,并检查它是什么类型的单词:
string = 'anarchism/NOUN originated/VERB as/ADP a/DET term/NOUN of/ADP abuse/NOUN first/ADV used/VERB against/ADP early/ADJ working/NOUN class/NOUN radicals/NOUN'
string = string.split(' ')
temp = ''
for a in string:
if '/NOUN' in a:
temp += a + ' '
else:
temp += 'NIL '
string = temp
print(string)