为给定单词之前的单词提取 POS 标记
Extract POS tag for a word coming before a given word
我是 python 的新手,我正在尝试为给定单词之前的单词提取词性 (Stanford CoreNLP)。 for the text = "一个人用白面包准备食物,旁边有一只黑猫?"
这是我的代码
for i in nouns:
pattren ="\w+(?=\s*"+i+"[^/])"
re1 = re.search(pattren , text)
if(re1):
for tag in tagger.tag(text.split()): #POS tag extractor
if re1[0] in tag[1]:
for specific in tag[1].split():
if re1[0] in specific:
print("The Noun " + i + ":-")
print(specific)
其中nouns是一个包含文本中所有NN的数组['human', 'food', 'use', 'side', 'cat']
我尝试使用正则表达式提取
之前的单词
输出是:
The Noun طعام:-
يحضر/VBP
The Noun استخدام:-
ب/IN
The Noun استخدام:-
الخبز/DTNN
The Noun استخدام:-
الابيض/DTJJ
The Noun استخدام:-
ب/IN
The Noun استخدام:-
جانب/NN
The Noun جانب:-
ب/IN
The Noun جانب:-
الخبز/DTNN
The Noun جانب:-
الابيض/DTJJ
The Noun جانب:-
ب/IN
The Noun جانب:-
جانب/NN
The Noun قطة:-
ه/PRP$
The Noun قطة:-
ه/PRP$
有重复的字,实在是没法做题。
问题在行
if re1[0] in tag[1]:
这会获取与 re1[0] 匹配的 tag[1] 字符串中的所有单词,无论它是单词还是字符。
解决方案,我尝试使用正则表达式来获取标签[1]中的确切单词。
if re.match(r'\b'+ re1[0]+'(?!\.?\d)', tag[1]):
我是 python 的新手,我正在尝试为给定单词之前的单词提取词性 (Stanford CoreNLP)。 for the text = "一个人用白面包准备食物,旁边有一只黑猫?"
这是我的代码
for i in nouns:
pattren ="\w+(?=\s*"+i+"[^/])"
re1 = re.search(pattren , text)
if(re1):
for tag in tagger.tag(text.split()): #POS tag extractor
if re1[0] in tag[1]:
for specific in tag[1].split():
if re1[0] in specific:
print("The Noun " + i + ":-")
print(specific)
其中nouns是一个包含文本中所有NN的数组['human', 'food', 'use', 'side', 'cat'] 我尝试使用正则表达式提取
之前的单词输出是:
The Noun طعام:-
يحضر/VBP
The Noun استخدام:-
ب/IN
The Noun استخدام:-
الخبز/DTNN
The Noun استخدام:-
الابيض/DTJJ
The Noun استخدام:-
ب/IN
The Noun استخدام:-
جانب/NN
The Noun جانب:-
ب/IN
The Noun جانب:-
الخبز/DTNN
The Noun جانب:-
الابيض/DTJJ
The Noun جانب:-
ب/IN
The Noun جانب:-
جانب/NN
The Noun قطة:-
ه/PRP$
The Noun قطة:-
ه/PRP$
有重复的字,实在是没法做题。
问题在行
if re1[0] in tag[1]:
这会获取与 re1[0] 匹配的 tag[1] 字符串中的所有单词,无论它是单词还是字符。
解决方案,我尝试使用正则表达式来获取标签[1]中的确切单词。
if re.match(r'\b'+ re1[0]+'(?!\.?\d)', tag[1]):