Я разрабатываю приложение, которое должно извлекать имена людей из коротких текстов.
Каков наилучший способ сделать это? Есть ли база данных имен, где я могу проверить, чтобы узнать, где это имя? тот факт, что текст короткий, может быть не таким интенсивным с точки зрения потребностей в обработке.
Есть идеи?
Спасибо
Tam
Вы можете использовать статистический Распознаватель именованных сущностей (NER), такой как NER Стенфорда или LingPipe . Это распознаватели, основанные на машинном обучении, которые не требуют огромных словарей имен в качестве входных данных.
Кроме того, вы можете получить список имен людей из Интернета (их достаточно) и использовать алгоритм поиска строк Aho-Corasick для эффективного извлечения имен из списка из текста.
Я нашел эту ссылку: Извлечение имен людей из RSS-каналов с использованием WordNet
Если вы работаете в * nix системе, попробуйте посмотреть /usr/share/dict/propernames. В Mac OS X он есть, и я думаю, что, по крайней мере, в Ubuntu тоже.
/usr/share/dict/propernames
Вы можете использовать это с grep:
grep
grep -f /usr/share/dict/propernames short_text.txt
Получить набор данных имени: Я сделал коллекцию наборов данных для таких задач. Вы можете использовать мои наборы данных здесь: https://mbejda.github.io. Они все в формате CSV. Имена классифицированы по расе и полу.
Распознаватель именованных сущностей: Посмотрите в OpenNLP или StanfordNLP для распознавания именной сущности и извлечения.
Как насчет Бюро переписей США Данные генеалогии