python - 解析 LaTex 作者标签以提取作者姓名

标签 python latex nltk author named-entity-recognition

<强>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}$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 里斯本经济与管理学院 Universidade de Lisboa, Rua do Quelhas, - 里斯本葡萄牙研究 UECE 复杂性与经济学单元 Rua Miguel Lupi, - 葡萄牙里斯本

R。 Vilela Mendes Grupo de Fisica Matematica,Av。 Gama Pinto,葡萄牙里斯本抄本 坦尼娅·阿劳霍和弗朗西斯科·卢 经济部,ISEG,R. Miguel Lupi ,葡萄牙里斯本,

<强>3。期望的输出: 仅提取名称并删除大学名称或任何位置名称。尝试使用 NLTK 中的 NER,但它会将 Universidade 和 Lisboa 识别为 PERSON 等。

(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)吗?

最佳答案

您也许可以使用https://github.com/alvinwan/TexSoup ,这将提取作者元素,如下所示。

>>> 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)$ 之类的项目。

关于python - 解析 LaTex 作者标签以提取作者姓名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52764653/

相关文章:

python - NLTK CCG 中的 Lambda 演算表示

python - 如何使用 python 和 NLTK 从 Penn Treebank 获取一组语法规则?

python - Scikit learn - 如何使用 SVM 和随机森林进行文本分类?

python - 在同一脚本中读取和写入

latex - 对流程图中的箭头进行编码

r - 如何在 r markdown 中将 kable 和 ggplot 对齐在一行(并排)?

python - 两个相似代码给出不同结果和不同方法执行此任务的原因

python - wxpython phoenix 说 Frame init args 错误

r - 我几乎已经成功地将 latex 字体放入 R 图中,但它略有偏差

python - 如何在 python 中将文本 block 标记为一个标记?