Text Mining для извлечения типов животных из текста - PullRequest
2 голосов
/ 15 марта 2011

Мне нужно провести эксперимент, и я новичок в НЛП. Я читал книги, которые объясняют теоретические проблемы, но когда дело дошло до практики, мне было трудно найти руководство. так что, пожалуйста, кто знает что-нибудь в НЛП, особенно практические вопросы, скажите мне и укажите мне правильный путь, потому что я чувствую себя потерянным (полезные книги, полезные инструменты и полезные сайты)

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

I was watching TV with my lovely cat last night.

извлеченный текст будет

(my lovely cat last night)

Это будет мой пример обучения станку

В1: будет около 100 обучающих примеров, похожих на те, что я объяснил выше. Я использовал токнизер для извлечения слов, но как я могу извлечь конкретные слова (для нашего примера всех типов животных) с 2 словами на каждой стороне. мне нужно использовать теги, например, или какова ваша идея?

В2: Если у меня есть эти обучающие примеры, как я могу подготовить соответствующие наборы данных, которые я могу передать их станку для его обучения? что я должен написать в этом наборе данных, чтобы указать животное, и мне нужно дать другие функции? и как я могу расположить его в наборе данных.

много слов от вас могут мне очень помочь, пожалуйста, не стесняйтесь рассказать, что вы знаете

Ответы [ 2 ]

0 голосов
/ 01 апреля 2011

Позвольте мне начать с того, что, будучи инженером-самоучкой, когда я начал работать в НЛП несколько лет назад, я полностью понимаю ваше разочарование.Я хотел бы предложить вам прочитать книгу NLTK, которая является прекрасным введением в прикладную НЛП.В частности, прочитайте главы 3-7, которые касаются обработки необработанных текстовых данных для извлечения информации и использования ее для маркировки.Книга доступна онлайн .

Что касается вашего конкретного вопроса:

Я думаю, что было бы намного проще создать небольшой список животных и затем извлечь предложенияиз корпуса, который содержит эти имена животных.Предложения Wikipedia - один очевидный пример.Вы можете построить свой корпус, используя этот метод, потому что вы уже знаете имена животных в каждом предложении.

// PSEUDO CODE
Dictionary animals = ["dog","dogs,"cat","cats","pig","pigs","cow","cows","lion","lions","lioness","lionesses"];
String[] sentences = getWikipediaSentences();
for(sent: sentences){
  for(token: Tokenizer.getTokens(sent)){
    if(animals.contains(token){
    addSentenceToCorpus(sent)
    } // else ignore sentence
  }
}

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

0 голосов
/ 15 марта 2011

То, что вы пытаетесь сделать, иногда называют «приобретением онтологии» или «автоматизированной онтологией», и это довольно трудная проблема.Большинство подходов сводятся к тому, что «похожие слова, как правило, используются в аналогичных контекстах».Проблема заключается в том, что хотя существуют алгоритмы, которые успешно извлекают семантически значимые отношения из данных, таких как ваши, переходя от «Вот несколько терминов, которые статистически разделяют общее распределение с вашими исходными терминами», чтобы «ваши исходные термины были именами животныхВот некоторые другие названия животных "является сложной задачей.Например, тренировка на кошке, собаке, змее, птице может в конечном итоге дать вам такие результаты, как «млекопитающее, такса, существо, двуногая», которые используются в аналогичных контекстах, но в зависимости от ваших требований могут не соответствовать вашим потребностям.

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

http://www.cl.cam.ac.uk/~ah433/cluk.pdf

...