Глубокое обучение и анализ/извлечение текста

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

Предположим, текст из 200 слов и таблица, в которой у меня есть имя и фамилия моего клиента. Я пытаюсь построить модель для извлечения из этих 200 слов имени/фамилии конкретного клиента с использованием глубокого обучения.

Я читал о моделях CNN и RNTN, семантическом анализе и моделях word2vec, но, очевидно, я не профессионал в этой области.

Мои мысли таковы:

  • Шаг 1: создайте 1-ю модель, где ввод = фамилия клиента, вывод = фамилия класса
  • Шаг 2: создайте вторую модель, где ввод = имя клиента, вывод = имя класса
  • шаг 3: создайте 3-ю модель, где ввод = имя клиента + фамилия и фамилия + имя, вывод = класс клиента
  • Шаг 4: создайте 4-ю модель, в которой я отправляю набор слов на вход и нахожу способ найти класс клиента на выходе.

Точно так же, как мы можем найти существительное/наречие/глагол/..., мы должны быть в состоянии создать своего рода новую "семантическую сортировку" как клиент, адрес,....

Может ли кто-нибудь дать мне несколько советов о моем образе мышления? или скажите мне, какую часть я должен изменить/улучшить?

Большое спасибо.


person lovefinearts    schedule 24.08.2016    source источник
comment
то, что вы ищете, это создание системы, которая не может определить имя и фамилию клиента в предложении. работа с языковой обработкой — обширная область. то, что я бы посоветовал вам, это сделать великую истину, пометив некоторые данные и изучить модель на них, ваших классов должно быть два или 3 максимум. Прежде всего попробуйте реализовать некоторые методы для очистки ваших данных и структурирования текста перед применением какой-либо модели, такой как RNN, NN.   -  person Feras    schedule 25.08.2016
comment
Спасибо за ваш ответ. После некоторых поисков я с нетерпением жду реализации CRF для решения моей проблемы с соответствующей маркировкой BILOU NER. Я буду использовать модель Tensorflow Sequence-to-Sequence. Я дам вам знать, как идут дела. Кстати, есть ли у вас какие-либо инструменты, чтобы предложить мне, чтобы я мог очистить данные и пометить их для поезда? у меня есть список CSV с названиями компаний в первом столбце и адресом во втором столбце. Спасибо за помощь.   -  person lovefinearts    schedule 29.08.2016


Ответы (1)


Вы можете использовать распознавание именованных сущностей (NER) после построения модели, которую будет сложно построить/займет очень много времени; однако, если вы знаете имя и фамилию клиента, есть гораздо более быстрый способ идентифицировать их в предложениях. Просто используйте простой SQL-запрос с параметром таблицы, чтобы найти имена и фамилии клиентов. Я использую что-то подобное в SQL Server 2012. В этом примере вы можете передать X количество клиентов в качестве параметра табличного значения, чтобы изолировать предложения. У меня была та же проблема с проектом, над которым я работал, и это было решением... Всегда есть альтернатива, и в этом случае это то, что вы можете настроить за считанные минуты, а не недели:

ALTER Procedure [dbo].[Get_Sentences_Token_Table_Value_Parameter] 
@id_file int,
@sentiment nvarchar(50),
@client_list [dbo].[client_list] READONLY
AS
SELECT        TOP (1000) sentence_id, pos_remaining_token, sentiment AS Sentiment, sentence AS Sentence, id_file, pos_token
FROM            chat_Facets
GROUP BY sentence_id, pos_remaining_token, sentiment, sentence, id_file, pos_token
HAVING        (id_file = @id_file) AND (sentiment = @sentiment) AND chat_Facets.pos_remaining_token IN (SELECT pos_remaining_token FROM @client_list)
ORDER BY pos_remaining_token, Sentence
person Rob    schedule 29.08.2016
comment
Это именно то, к чему я иду: использование seq2seq из tensorflow для реализации тега NER. Я знаю о решении SQL... мы говорим о длинных предложениях из сотен слов, поступающих из вывода OCR, в базе данных миллионов людей... у нас есть сильные центры обработки данных, поэтому потребление времени/вычислений не является проблемой: ) я просто пытаюсь сделать POT/POC доступным и работающим в течение следующих нескольких недель. И главная проблема с SQL-решением — эти вызовы SQL-сервера, которые будут насыщать сервер, когда мы сможем создать интеллектуальную модель глубокого обучения, которая решает все. :) - person lovefinearts; 30.08.2016