Python 解析LaTex作者标记以提取作者姓名
1。作者标签:Python 解析LaTex作者标记以提取作者姓名,python,latex,nltk,author,ner,Python,Latex,Nltk,Author,Ner,1。作者标签: \author{{\small Tanya Araujo$^{a,b}$ and Elsa Fontainha$^{a}$} \and {\small $^{a}$ISEG (Lisbon School of Economics \& Management) Universidade de Lisboa, } \and {\small Rua do Quelhas, 6 1200-781 Lisboa Portugal} \and {\small $^{b}$Resear
\author{{\small Tanya Araujo$^{a,b}$ and Elsa Fontainha$^{a}$} \and {\small $^{a}$ISEG
(Lisbon School of Economics \& Management) Universidade de Lisboa, } \and
{\small Rua do Quelhas, 6 1200-781 Lisboa Portugal} \and {\small $^{b}$Research
Unit on Complexity and Economics (UECE)} \and {\small Rua Miguel Lupi, 20
1249-078 Lisboa Portugal}}
\author{{\bf R. Vilela Mendes} \and {\small Grupo de Fisica Matematica, Av.
Gama Pinto 2,} \and {\small \ 1699 Lisboa Codex, Portugal
(vilela@cii.fc.ul.pt)} \and {\bf Tanya Araujo and Francisco Lou\cc\a%
} \and {\small Departamento de Economia, ISEG,} \and {\small R. Miguel Lupi
20, 1200 Lisboa, Portugal} \and {\small (tanya@iseg.utl.pt,
flouc@iseg.utl.pt)}}
2。删除特殊字符、其他标签、电子邮件和号码:
Tanya Araujo和Elsa Fontainha ISEG
里斯本经济与管理学院葡萄牙里斯本研究院
复杂性和经济学单元UECE Rua Miguel Lupi,
-葡萄牙葡京
R.Vilela Mendes Grupo de Fisica Matematica,Av。
伽马平托,葡京法典,葡萄牙
Tanya Araujo和Francisco Lou
经济部,伊塞格,R.米格尔·卢皮
葡萄牙里斯本
3。所需输出:
仅提取名称并删除大学名称或任何位置名称。试图使用NLTK中的NER,但它将Universidade和Lisboa视为个人,等等
(PERSON Tanya/NNP)
(PERSON Araujo/NNP)
and/CC
(PERSON Elsa/NNP Fontainha/NNP)
ISEG/NNP
(/(
(ORGANIZATION Lisbon/NNP School/NNP)
of/IN
(ORGANIZATION Economics/NNP)
&/CC
Management/NNP
)/)
(PERSON Universidade/NNP)
de/FW
(PERSON Lisboa/NNP)
,/,
(PERSON Rua/NNP)
do/VBP
(PERSON Quelhas/NNP)
,/,
-/:
(PERSON Lisboa/NNP Portugal/NNP Research/NNP Unit/NNP)
on/IN
(ORGANIZATION Complexity/NNP)
and/CC
(GPE Economics/NNP)
(/(
(ORGANIZATION UECE/NNP)
)/)
(PERSON Rua/NNP Miguel/NNP Lupi/NNP)
,/,
-/:
(PERSON Lisboa/NNP Portugal/NNP Alessandro/NNP Spelta/NNP)
corresponding/VBG
author/NN
:/:
and/CC
(PERSON Tanya/NNP Araujo/NNP))
是否可以使用NLTK中的NER来解决此问题,或者我们是否应该尝试任何其他库,如spaCy?您可能可以使用它来提取author元素,如下所示
>>> from TexSoup import TexSoup
>>> soup = TexSoup(open('tri7.txt').read())
>>> for i in soup.find_all('author'):
... i
...
\author{{\small Tanya Araujo$^{a,b}$ and Elsa Fontainha$^{a}$} \and {\small $^{a}$ISEG
(Lisbon School of Economics \& Management) Universidade de Lisboa, } \and
{\small Rua do Quelhas, 6 1200-781 Lisboa Portugal} \and {\small $^{b}$Research
Unit on Complexity and Economics (UECE)} \and {\small Rua Miguel Lupi, 20
1249-078 Lisboa Portugal}}
然后您可以提取以下示例中的字符串
{{\small Tanya Araujo$^{a,b}$ and Elsa Fontainha$^{a}$}
在这种情况下,可以采用多种方式中的任何一种。
最后,如果您不能让TexSoup为您做这件事,您可以使用正则表达式删除
\small
和$(a,b)$
等项。非常感谢您对@Bill的回复。这仅限于此特定情况,但如果有许多其他格式与此不同,该怎么办。我很抱歉这个问题只针对这个案子,不客气。“其他格式”是什么意思?我是指不同格式的作者标签。请检查我在描述中更新的另一个作者标签。我明白了。如果作者条目是不规则的,那么可能会有相当大的挑战性。我倾向于尝试找出其中的模式。您可能能够减少所需的编码量,但我希望能做大量的分析工作。