Компьютерная лингвистика

Новостная лента www.solarix.ru

Модуль поддержания разговора (smalltalk режим) для чатбота
kelijah
В кодовую базу чат-бота добавлен небольшой модуль, которые позволяет в ответ на реплики пользователя, не являющиеся вопросами, отвечать для поддержания разговора (с условным названием smalltalk режим - см. также описание светской беседы в вики). В комплекте с общим retrieval-based алгоритмом чатбота и динамическим обновлением базы знаний из диалога получается более плавное общение (Q - мои реплики, A - ответы чат-бота):

Q:> привет
A:> Здравствуй

Q:> как тебя зовут?
A:> кеша

Q:> меня зовут Илья
A:> Привет!

Q:> я сегодня ел арбуз
A:> Арбуз очень вкусный был?

Q:> что я сегодня ел?
A:> арбуз




Read more...Collapse )

Удобная сортировка текстовых датасетов с помощью LSA и t-SNE
kelijah
По-моему, самый простой, полностью unsupervised, и удобный для визуального анализа способ сортировки датасетов типа этого получается вот так:

1) у нас есть текстовый файл, в каждой строке которого находится одно предложение.

2) выполняем LSA по символьным шинглам:

vectorizer = TfidfVectorizer(max_features=None, ngram_range=(3, 5), min_df=1, analyzer='char')
svd_model = TruncatedSVD(n_components=LSA_DIMS, algorithm='randomized', n_iter=20, random_state=42)
svd_transformer = Pipeline([('tfidf', vectorizer), ('svd', svd_model)])
svd_transformer.fit(tfidf_corpus)
phrase_ls = svd_transformer.transform(tfidf_corpus)


3) выполняем встраивание получающегося списка векторов phrase_ls в одномерное пространство с помощью t-SNE, так что близкие вектора предложений, полученные в п.2, будут примерно так же близки друг к другу, как в исходном LSA-пространстве (я задавал LSA_DIMS=60, но это влияет больше на общее время выполнения, чем на качество итоговых результатов):

tsne = TSNE(n_components=1)
phrases_1d = tsne.fit_transform(phrase_ls)


4) остается только отсортировать предложения по получившемуся ключу 1d встраивания и сохранить результат в файл.

В результатах такой сортировки можно увидеть разные группы, например:
Read more...Collapse )

?

Log in

No account? Create an account