在 python 中提取特定条件
Extract specific conditions in python
我这样创建 python 代码,但效果不佳。
(结果不是return)
我只想提取“动词”“名词”“形容词”
你有什么想法吗?
非常感谢。
m = MeCab.Tagger("-Ochasen")
for result in results:
# word = m.parse(result['text'])
word = [line.split()[0] for line in m.parse(result['text']).splitlines() if "名詞" in line.split()[-1]
for line in m.parse(result['text']).splitlines() if "動詞" in line.split()[-1]
for line in m.parse(result['text']).splitlines() if "形容詞" in line.split()[-1]]
result['mecab'] = word
我主要是在猜测您要做什么。我假设你有一个结果列表。您尝试从结果列表中的每个结果元素中提取一组特定的字符。然后你需要做:
m = MeCab.Tagger("-Ochasen")
for result in results:
result_text = result["text"]
result_text = m.parse(result_text)
text_lines = result_text.splitlines()
word = None
for line in text_lines:
if "名詞" in line:
word = "名詞"
elif "動詞" in line:
word = "動詞"
elif "形容詞" in line:
word = "形容詞"
if word is not None:
result['mecab'] = word
或者类似的东西
如果您使用已解析的数据,这会更容易。您应该使用 fugashi,它也是 MeCab 包装器。
import fugashi
tagger = fugashi.Tagger()
nodes = tagger.parseToNodeList("図書館から赤い本を借りた")
goodpos = ['名詞', '動詞', '形容詞']
nodes = [nn.surface for nn in nodes if nn.feature.pos1 in goodpos]
# => ['図書', '赤い', '本', '借り']
我这样创建 python 代码,但效果不佳。 (结果不是return)
我只想提取“动词”“名词”“形容词”
你有什么想法吗?
非常感谢。
m = MeCab.Tagger("-Ochasen")
for result in results:
# word = m.parse(result['text'])
word = [line.split()[0] for line in m.parse(result['text']).splitlines() if "名詞" in line.split()[-1]
for line in m.parse(result['text']).splitlines() if "動詞" in line.split()[-1]
for line in m.parse(result['text']).splitlines() if "形容詞" in line.split()[-1]]
result['mecab'] = word
我主要是在猜测您要做什么。我假设你有一个结果列表。您尝试从结果列表中的每个结果元素中提取一组特定的字符。然后你需要做:
m = MeCab.Tagger("-Ochasen")
for result in results:
result_text = result["text"]
result_text = m.parse(result_text)
text_lines = result_text.splitlines()
word = None
for line in text_lines:
if "名詞" in line:
word = "名詞"
elif "動詞" in line:
word = "動詞"
elif "形容詞" in line:
word = "形容詞"
if word is not None:
result['mecab'] = word
或者类似的东西
如果您使用已解析的数据,这会更容易。您应该使用 fugashi,它也是 MeCab 包装器。
import fugashi
tagger = fugashi.Tagger()
nodes = tagger.parseToNodeList("図書館から赤い本を借りた")
goodpos = ['名詞', '動詞', '形容詞']
nodes = [nn.surface for nn in nodes if nn.feature.pos1 in goodpos]
# => ['図書', '赤い', '本', '借り']