相关疑难解决方法(0)

将列表/元组对打包成两个列表/元组

可能重复:
Python中的转置/解压缩功能

我有一个如下所示的列表:

list = (('1','a'),('2','b'),('3','c'),('4','d'))
Run Code Online (Sandbox Code Playgroud)

我想将列表分成2个列表.

list1 = ('1','2','3','4')
list2 = ('a','b','c','d')
Run Code Online (Sandbox Code Playgroud)

我可以这样做:

list1 = []
list2 = []
for i in list:
   list1.append(i[0])
   list2.append(i[1])
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有更优雅的解决方案.

python tuples list

152
推荐指数
2
解决办法
11万
查看次数

Stanford Parser和NLTK

是否可以在NLTK中使用Stanford Parser?(我不是在谈论斯坦福POS.)

python parsing nlp nltk stanford-nlp

89
推荐指数
8
解决办法
9万
查看次数

使用NLTK中的Stanford NER Tagger提取人员和组织列表

我正在尝试使用Python NLTK中的Stanford Named Entity Recognizer(NER)提取人员和组织的列表.当我跑:

from nltk.tag.stanford import NERTagger
st = NERTagger('/usr/share/stanford-ner/classifiers/all.3class.distsim.crf.ser.gz',
               '/usr/share/stanford-ner/stanford-ner.jar') 
r=st.tag('Rami Eid is studying at Stony Brook University in NY'.split())
print(r) 
Run Code Online (Sandbox Code Playgroud)

输出是:

[('Rami', 'PERSON'), ('Eid', 'PERSON'), ('is', 'O'), ('studying', 'O'),
('at', 'O'), ('Stony', 'ORGANIZATION'), ('Brook', 'ORGANIZATION'),
('University', 'ORGANIZATION'), ('in', 'O'), ('NY', 'LOCATION')]
Run Code Online (Sandbox Code Playgroud)

我想要的是从这个列表中提取这种形式的所有人和组织:

Rami Eid
Sony Brook University
Run Code Online (Sandbox Code Playgroud)

我试图循环遍历元组列表:

for x,y in i:
        if y == 'ORGANIZATION':
            print(x)
Run Code Online (Sandbox Code Playgroud)

但是这段代码只打印每行一个实体:

Sony 
Brook 
University
Run Code Online (Sandbox Code Playgroud)

对于真实数据,可以有多个组织,一个句子中的人,我如何在不同实体之间设置限制?

python named-entity-recognition nltk stanford-nlp

24
推荐指数
2
解决办法
2万
查看次数