Как автоматически определить цитаты из одной и той же статьи? - PullRequest
0 голосов
/ 03 июля 2018

Рассмотрим 3 способа цитирования одной и той же статьи:

cite1 = "Yoshua Bengio, Réjean Ducharme, Pascal Vincent and Christian Jauvin, A Neural Probabilistic Language Model (2003), in: Journal of Machine Learning Research, 3(1137--1155)"

cite2 = "Yoshua Bengio, Réjean Ducharme, Pascal Vincent, Christian Jauvin. (2003) A Neural Probabilistic Language Model"

cite3 = "Bengio Y, Ducharme R, Vincent P, Jauvin C. (2003) A Neural Probabilistic Language Model"

Простой способ автоматического определения ссылок на одну и ту же статью - вычислить сходство этих ссылок с модулем difflib в стандартной библиотеке Python:

from difflib import SequenceMatcher as smatch
def similar(x, y): return smatch(None, x.strip(), y.strip()).ratio()

similar(cite1, cite2)    # 0.721
similar(cite1, cite3)    # 0.553
similar(cite2, cite3)    # 0.802

К сожалению, показатель сходства варьируется от 0,553 до 0,802, поэтому неясно, какой порог следует установить. Если порог слишком низкий, то цитаты из разных статей могут быть ошибочно приняты за одну и ту же. Но если порог слишком высок, мы пропускаем некоторые цитаты.

Есть ли лучшие решения?

Ответы [ 2 ]

0 голосов
/ 03 июля 2018

Помимо нейронных сетей и НЛП, что было бы довольно ... сложным подходом, я бы подошел к этой проблеме, предварительно обработав данные.

Несколько вещей, которые вы можете сделать:

- Create Short names Yoshua Bengio => Bengio Y
- Normalize the names: Réjean Ducharme -> rejean ducharme
- Extract author part of the string, title part of the string, and the "leftovers". Calculate similarity for each of the parts and average the result.
- Extract the year of the publication and make it a three variable problem.
- Use additional metadata if available (paper field, citation index, etc.

Приведенный выше подход работает, если ваша проблема ограничена этими тремя типами библиографии.

Если у вас есть большие различия в библиографии (т.е. применить ее ко всей базе данных Springer / ieee), вам следует изучить подходы машинного обучения.

Хотя я не могу предложить правильную модель на макушке, я помню эта бумага была где-то рядом с вашей проблемой.

Среди других подходов, если у вас есть большой набор данных библиографии, вы можете попробовать подходы под наблюдением полу, например word2vec / node2vec или kmeans, и посмотреть, будет ли последующая оценка сходства достаточно точной для вас.

Слово совета.

  • в некоторых случаях у вас есть очень похожие названия бумаг, приходящие от одних и тех же исследовательских групп, или короткие имена, идентичные, когда длинные отличаются W. Сюй может быть либо Wang Xu, либо Wei Xu, оба транскрибируются в Xu W..

  • в других случаях у вас одни и те же авторы с разными именами Réjean Ducharme и Rejean Ducharme

  • Названия бумаги могут иметь вариации: Conference of awesome discoveries и Awesome discoveries, conference of

0 голосов
/ 03 июля 2018

Важно учитывать Что делает цитату уникальной?

Исходя из вашего примера, представляется, что сочетание авторов, названия статьи и того, в каком году она была опубликована, представляет собой уникальную ссылку.

Это означает, что вы можете проанализировать имена, а затем сравнить, насколько они близки (поскольку в третьем примере имена перечислены по-разному). Разберите заголовок, и он должен совпадать на 100%. Разобрать год, и он также должен совпадать на 100%.

...