GotAI.NET

Форум: Проблемы искусственного интеллекта

 

Регистрация | Вход

 Все темы | Новая тема Стр.1 (17)След. > >>   Поиск:  
 Автор Тема: Обработка русского языка
Sergey
Сообщений: 26
Обработка русского языка
Добавлено: 05 дек 07 16:18
Сегодня опубликовал на http://www.gotdotnet.ru библиотеку "Russian Morphology.NET". Библиотека представляет собой компонент и базу данных русской морфологии. Его можно применять для морфологического анализа русского языка и проверки русской орфографии. Может быть полезен при реализации общения с компьютером на русском языке, создании чатботов и спеллчекеров и других систем требующих анализа естественного языка. Компотент может быть свободно использован в ваших проектах. Хотелось бы услышать ваши отзывы и предложения по доработке компонента.
Ссылка на публикацию: http://contest2005.gotdotnet.ru/Request/Tools/UtilitiesLib/523896.aspx
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Обработка русского языка
Добавлено: 05 дек 07 18:48
Может я чего-то не понял, но как использовать Вашу библиотеку конкретно при разработке какой-то программы? ИМХО нехватает примера исходного кода sample приложения.
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 05 дек 07 19:00
Есть проект с исходниками библиотеки в папке Solution. Проект создан на MS Visual Studio 2003. Сами данные находятся в базе Database\ZaliznyakDataBase.vnn. Их можно выгрузить в *.csv и *.ini файлы. Об этом написано в документации. Файл Russian Morphology.NET.doc. А можно использовать готовую базу Database\ZaliznyakDataBase.vnn.

Как найти пример:
Загрузите проект в студию. Откройте Cerebrum.Vocabulary.Desktop/TransformForm. Это форма поиска словоформ. В своей работе она использует разработку Дмитрия Шуклина ООБЗ Cerebrum. Желательно почитать об этой базе данных http://www.shuklin.com/ai/ht/ru/cerebrum/.
[Ответ][Цитата]
Corwin
Сообщений: 1324
На: Обработка русского языка
Добавлено: 05 дек 07 19:34
С этим я разобрался, только всеравно считаю что не хватает простенького executable примера (с исходниками), который бы показывал как использовать библиотеку в своих проектах. Разбираться в исходниках dll-ки не так наглядно...
Опять же ИМХО было бы удобней если бы Ваша TransformForm находилась не внутри библиотеки, а как отдельное (exe) приложение.
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 06 дек 07 10:19
Здравствуйте!
Спасибо за идею. Учту.
Вообще-то там не библиотека важна, а база. Библиотека – это всего лишь импорт-экспорт данных из базы в *.csv и *.ini файлы и небольшой пример работы с данными из базы данных. Если кого-то не устраивает формат базы данных, то данные всегда можно перенести в другой формат. Но мне больше нравится тот формат, который в базе данных. Там есть 4-е таблицы: ZlAttributes, ZlSpecifiers, ZlTransforms и ZlStatements.
В таблице ZlAttributes хранятся морфологические характеристики слов.
В таблице ZlSpecifiers есть атрибут (поле) ZlAttributes в котором хранятся указатели на атрибуты (таблица ZlAttributes). Т.е. например спецификатор с именем 70001 является существительным, мужского рода, единственного числа, именительный падеж, одушевленное.
Таблица ZlTransforms – это трансформации слова. В этой таблице в качестве атрибутов стоят спецификаторы (записи из ZlSpecifiers). Для каждого трансформа в атрибутах-спецификаторах находятся окончания слов. А вот начало слова находится в таблице ZlStatements. Зная начало слова и имя трансформа (оно тоже находится в таблице ZlStatements) можно определить список словоформ. А пройдя по остальным таблицам определить морфологические характеристики каждого слова.
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 10 дек 07 13:45
http://contest2005.gotdotnet.ru/Request/Apps/Other/525202.aspx - Простенький примерчик использования базы данных Зализняка.
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 26 ноя 08 23:16
Разработана новая версия морфологической базы русского языка, которую можно выкачать по следующему адресу: http://www.citiesua.com.ua/Russian_Morphology_dot_NET/Russian_Morphology_dot_NET.rar
[Ответ][Цитата]
tac
Сообщений: 2601
На: Обработка русского языка
Добавлено: 27 ноя 08 8:57
А числа прописью он умеет писать ?
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 27 ноя 08 9:50
Программа предназначена для морфологического анализа русского языка. Для преобразования числа в число прописью существуют другие программы. Тут была бы наверное интересна задача обратная поставленной. Преобразовать число прописью в число. Например: "пять тысяч" или "три тысячи". Слово "тысяча" склоняется. Используя базу, можно привести это слово к общему виду ("пять тысяча", "три тысяча") и потом в программе делать меньше проверок.
[Ответ][Цитата]
гость
89.208.11.*
На: Обработка русского языка
Добавлено: 27 ноя 08 13:46
в русском языке, слова образуются по некоторым логическим правилам. Т.е. когда приходит необходимость создать новое понятие, оно создается по этим правилам.
Именно по этой причине, взяв готовое слово русского языка, можно разобрать его по составу и понять как именно оно образовывалось. Сие применяется для занесения слова в видовой классификатор. Т.е. именно так этот классификатор и создается. А сам этот классификатор нужен для того, чтобы преобразовать слово в цифровой код-координату слова в классификаторе.
запись этой координаты и будет смыслом слова в данной системе. А поскольку система строиться аналогично человеческой, то и смысл понятия будет соответствовать человеческому, да и формат записи в человеке такой же...
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 27 ноя 08 22:51
Одно и тоже слово в разных предложениях может имеить разный смысл. Т.е. в моём понимании смысл можно описать в предожении, абзаци или в статье. Определением смысла занимается семантика. Но до этого нада разобраться с постоением предложений. С синтаксисом. Только после этого можно перейти к семантике. Может я не прав. Готов выслушать любое мнение по этому поводу.
[Ответ][Цитата]
гость
83.149.21.*
На: Обработка русского языка
Добавлено: 27 ноя 08 23:04
Хотелось бы оценить уровень Вашей библиотеки без скачивания. Если можно, ответьте пожалуйста на следующие вопросы:
1. В каком виде библиотека выдает результат? По идее это должен быть кортеж вариантов, например предложение
Домик стоит на лесной поляне
В этом предложении нет никакой синтаксической и семантической неоднозначности, но полно морфологической
Домик - именительный и винительный падеж
стоит - форма от "стоять" и форма от "стоить"
на - предлог управляющий вин. падежом (на стол) или предлог управляющий пред. падежом (на столе)
лесной - им. и вин. падеж мужского рода или род., дат., твор. падежи женского рода
поляне - дат. или пред. падеж

В каком виде это все будет выдано библиотекой?

2. Как с поддержкой буквы ё (распознается ли она в тексте или считается орфографической ошибкой)

3. Поддерживает ли библиотека интерфейс IEnumerable и, соответственно, запросы LINQ к тексту (например, типа, выбрать все слова в именительном падеже и глаголы в личной форме)

4. Знает ли библиотека, что такое морфемы (разобрать слово по составу, и, соответственно, определить морфологию незнакомого (отсутствующего в базе) слова?

Буду очень благодарен за ответы!
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 28 ноя 08 11:53
Здравствуйте!
Компонент работает в среде Cerebrum. Т.е. при открытии морфологической базы появляется пользовательский интерфейс. На данный момент анализируется только одно введённое слово. В результате выдаётся список слов и их атрибуты. Например ищем слово "мёд":
Statement: 71241, Transform: 10613
70634: меды (сущ., неод., м.р., м.ж.ср.р., мн.ч., и.п.)
70639: медов (сущ., неод., м.р., м.ж.ср.р., мн.ч., р.п.)
70643: медам (сущ., неод., м.р., м.ж.ср.р., мн.ч., д.п.)
70647: меды (сущ., неод., м.р., м.ж.ср.р., мн.ч., в.п.)
70652: медами (сущ., неод., м.р., м.ж.ср.р., мн.ч., т.п.)
70656: медах (сущ., неод., м.р., м.ж.ср.р., мн.ч., п.п.)
70660: мёд (сущ., неод., м.р., ед.ч., и.п.)
70672: мёду (сущ., неод., м.р., ед.ч., р.п., 2р.п.2п.п.)
70674: мёда (сущ., неод., м.р., ед.ч., р.п.)
70690: мёду (сущ., неод., м.р., ед.ч., д.п.)
70703: мёд (сущ., неод., м.р., ед.ч., в.п.)
70715: мёдом (сущ., неод., м.р., ед.ч., т.п.)
70733: меду (сущ., неод., м.р., ед.ч., п.п., 2р.п.2п.п.)
70736: мёде (сущ., неод., м.р., ед.ч., п.п.)
Анализ предложения - это скорее задача из области синтаксиса. На данный момент программа не умеет такое делать.
Поддержку интерфейса IEnumerable в результате поиска не сложно сделать. Исходный код программы открыт. Для этого нада в файле TransformForm.cs заглянуть функцию Transform(). Эта функция в данный момент выдаёт результат в TextBox.
Определение морфологии незнакомого слова программа тоже не умеет делать. Хотя идея интересная. Огромное спасибо за идею. Быструю реализацию не обещаю так-как проект создаётся на энтузиазме в свободное от работы время. Но в будущем возможно реализуем.
Для удобства реализован экспорт-импорт данных из базы Cerebrum в CSV.

С ув., Сергей.
[Ответ][Цитата]
гость
89.208.11.*
На: Обработка русского языка
Добавлено: 28 ноя 08 12:03
*
[Ответ][Цитата]
Sergey
Сообщений: 26
На: Обработка русского языка
Добавлено: 28 ноя 08 12:14
А почему под гостем-то зашёл? Или людей боишься? Оскорблять под гостем уютней? Так получается?
[Ответ][Цитата]
 Стр.1 (17): [1]  2  3  4  5  ...  17След. > >>