我有句话:“Am / V I / NN好/足够调整/准备/准备1/2 / NUM”我必须分成单词和标签并创建两个不同的词典 - 用于单词和标签。我在这里看到了一个帖子但是没有关于拆分这个东西的消息--1 / 2 / NUM。
所以我想我必须做这样的事情:
s = "Am/V I/NN good/Prep enough/Prep for/Prep 1/2/NUM"
sent = s.split()
for word in sent:
word = word.split('/[a-z]')
dict_of_words = list(words[0])
doct_of_tags = list(words[1])
然后我明白了:
['Am/'V]
['I/NN']
[good/Prep]
etc.
如何解决此问题?
答案 0 :(得分:3)
s = "Am/V I/NN good/Prep enough/Prep for/Prep 1/2/NUM"
sent = s.split()
然后对/
字符上的每个项目rsplit
:
for item in sent:
data = item.rsplit('/', 1)
word = data[0]
tag = data[1]
或者如果您更喜欢更简洁的代码:
for item in sent:
word, tag = item.rsplit('/', 1)
答案 1 :(得分:0)
正如关于shuttle87的回答的评论中所指出的,这是一个简单的示例,显示了使用正则表达式进行拆分,以防您需要拆分多个字符,而使用字符串拆分方法则无法做到这一点。
import re
s = "Am/V I/NN good/Prep enough/Prep for/Prep 1/2/NUM"
parts = s.split(" ")
words_tags = [re.split(r'/(?=[A-Za-z])', part) for part in parts]
words = []
tags = []
for word_tag in words_tags:
words.append(word_tag[0])
tags.append(word_tag[1])
<'是''我','我','好','够','为','1/2'] ['V','NN','准备','准备','准备','NUM']