从标签python中分割单词和数字

时间:2015-12-03 17:35:35

标签: python split

我有句话:“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.

如何解决此问题?

2 个答案:

答案 0 :(得分:3)

首先在空格上

split

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']

Regex demo here.