Ага! А вот теперь попробуйте непредвзято определить количество смыслов в слове «разбить» :))
По-моему, задача эта ну очень сложна — то есть формально да, её можно «потянуть», но на практике… очень тяжко.
Вот смотрите, известно, что в эскимосских языках есть порядка 20 слов для обозначения снега. Это понятно, вся жизнь у них на снегу проходит. В русском это всё упирается в «снег». Внимание, вопрос: каким титаном мысли надо быть, чтобы заблаговременно в «универсальном семантическом словаре» описать 20 сущностей для снега? И так во всём…
А вот с примером «разбивать» вы слегка хитрите: что такое разбивать(субъект, объект: посуда)? Какая такая «посуда» — это класс из универсального или русского классификатора? Если второе, получается, что для русского всё равно создаётся своя классификация, «параллельная» универсальной.
Не рекомендую. Во-первых, и вправду доверия к правдивости этой байке о Леонардо немного.
Во-вторых, пример моего товарища, испытавшего на себе сию методу, отвратил меня даже от мысли попробовать: спустя месяц после экспериментов он выглядел как полузомби…
А в-третьих, и это главное: если собрать всю ту муру, которой любой из нас ежедневно занимается, окажется, что времени на сон уходит не так уж и много.
Человек, ты дочитал до моего комментария! Подумай об этом в свете третьего пункта.
С этим сложно спорить. Есть семантическая единица «корова», и на неё можно навесить идентификатор, согласен.
Есть ситуации посложнее. Например, семантическая единица «разбивать»: в английском понимании нужно 10 идентификаторов, соответствующих различным «разбиваниям». В других языках будут другие деления — где-то на 5, а где-то на 20. Стало быть, надо перечислять все логические единицы, которые хотя бы в теории могут описываться разными словами — в любом земном языке.
А хуже всего то, что придётся всё равно создавать отдельную систему для данного языка, которая решает специфические для языка проблемы. В универсальном классификаторе для всех языков не может быть информации о том, что мы едем «на Кипр», но «в Москву». Стало быть, эта информация (на/в) должна храниться где-то в другом месте. И так для каждого слова :)
Я думаю о ситуации множественного наследования… скажем так, если сейчас мне удастся придумать хороший пример, это будет удар по древовидной структуре, а я такого удара и сам не вижу пока :) Поэтому пример так себе качества:
Допустим, есть класс «мебель». Оттуда я разделяю на подклассы «металлическая» и «деревянная». А теперь в каждом подклассе будет «кухонная мебель» (соответственно, деревянная/кухонная и металлическая/кухонная).
Теперь если мне нужна кухонная мебель (неважно, деревянная или металлическая), у меня проблема: нет общего подкласса «кухонная мебель». Придётся перечислять оба подкласса явным образом.
Если же сделать сначала общий класс «кухонная мебель», а оттуда уже подклассы «деревянная» и «металлическая», проблема возникнет, когда мне потребуется любая деревянная (кухонная и не-кухонная) мебель.
Всё это решается определёнными костылями, вопрос лишь в накоплении критической массы проблем, которая может сломать эту систему.
Этот подход понятен, и широко используется в компиляторах языков программирования. Многие фриварные компиляторы (GNAT, например) не заморачивается генерацией машинного кода, вместо этого текст на исходном языке (в данном случае на Аде) транслируется в эквивалент на С, а далее вызывается GCC.
То есть выгоды его абсолютно очевидны. Мой скепсис связан не с непониманием выгод, а с неверием в принципиальную возможность создания «универсального классификатора» применительно к задаче перевода.
Как говорил Сепир, «Миры, в которых живут различные общества, — это разные миры, а вовсе не один и тот же мир с различными навешанными на него ярлыками».
Честно говоря, я не знаком с этим проектом в деталях. Но как бы то ни было, идеи «всеобщей классификации» витают в воздухе, и в том или ином виде воплощаются.
Штука в том, что цели у них, видимо, другие. Полагаю, что в «универсальной семантике» никто не будет классифицировать город по критерию «в-город» или «на-город» — это внутриязыковые игры.
Для ИИ на внеязыковом уровне это может быть полезно, но при разборе предложений конкретного языка без такой специфической инфы не обойтись.
Да, как вариант.
Надо сказать, что как раз в disambiguation статистика, насколько я понимаю, может как раз неплохо работать. Понятно, что одна трактовка слова встречается чаще в одних контекстах, а другая — в других.
Но всё равно без синтаксического анализа придумать хороший алгоритм трудно. Например, что такое «контекст»? Для языка со свободным порядком слов контекст могут формировать слова, достаточно удалённые друг от друга. Да и в английском между соседними словами можно вляпать какой-нибудь причастный оборот.
Есть «примеры» разного уровня сложности прямо в поставке XDG. Существуют ли более продвинутые грамматики — не знаю.
Английский — язык с достаточно жёстко фиксированной структурой, и с ним порою неплохо справляются парсеры, основанные на более простых принципах. Видимо, мотивация «переезжать» не слишком высока.
На самом деле это рассуждение почти так же малоосмысленно, как и «что круче — Паскаль или С».
XDG это просто формализм, язык программирования. Его мощь определяется исключительно тем, какого рода конструкции вы на нём будете описывать.
Прочие методы я оцениваю по тривиальным критериям — по тем же, что и язык программирования:
1) выразительные средства (поддерживает ли ту или иную парадигму);
2) качество существующих компиляторов.
«Родственные» к XDG методы не станут «круче» — это всё механизмы одного и того же уровня. Реально круче может быть лишь совершенно иного порядка метод — а я таковых, к сожалению, не знаю. Только чисто статистический подход является действительно другим.
Я не говорю, что языковая картина радикально отличается для разных языков. Естественно, существенные части иерархии будут пересекаться. Мы все живём в одном мире, у нас есть солнце, звёзды, картошка, корова и так далее.
Но есть и важные различия, о которых, в принципе, говорилось.
Например, «на»-места и «в»-места. Мы едем в город Тампере, а финн едет «на» город Тампере. Так как же быть, в какой класс включать?
По-русски можно «играть» в игру, а можно играть на музыкальном инструменте. По-фински нельзя «играть» на музыкальном инструменте, зато можно «звонить» — как по телефону. А по-русски «звонить» на инструменте нельзя…
Странно слышать — именно про WSD (не-статистический, естественно) эта часть и написана. В первом же примере я объясняю как disambiguate слово «разбивать», разве нет?
Ну ведь действительно было интереснее. Многое ручками делалось, чисто технически выглядело интереснее. Сравнить дисковод и флешку. Первое — произведение инженерного искусства, разбирай и радуйся :) А второе — просто микросхема на палочке :)
И так во всём.
Очень крупная часть всего этого добра переехала на телефоны.
Многие фирмы явно запрещают распространение своих игр двадцатилетней давности (при всём при том, что легально купить их нигде нельзя) — видимо, ещё рассчитывают…
Ох, тогда не знаю — что шлак, а что не шлак… Для начала хотя бы эти: opennlp.sourceforge.net/projects.html
В OpenNLP Tools есть sentence detector/splitter, да и вроде там не сильно завязано на конкретные языки…
Тут главное знать, что гуглить :) Штука популярная, ищите «sentence splitter»… не даю конкретных ссылок, т.к. можете найти довольно много разного — на нужном языке программирования, для нужного языка входного текста; это не редкость.
По-моему, задача эта ну очень сложна — то есть формально да, её можно «потянуть», но на практике… очень тяжко.
Вот смотрите, известно, что в эскимосских языках есть порядка 20 слов для обозначения снега. Это понятно, вся жизнь у них на снегу проходит. В русском это всё упирается в «снег». Внимание, вопрос: каким титаном мысли надо быть, чтобы заблаговременно в «универсальном семантическом словаре» описать 20 сущностей для снега? И так во всём…
А вот с примером «разбивать» вы слегка хитрите: что такое разбивать(субъект, объект: посуда)? Какая такая «посуда» — это класс из универсального или русского классификатора? Если второе, получается, что для русского всё равно создаётся своя классификация, «параллельная» универсальной.
Во-вторых, пример моего товарища, испытавшего на себе сию методу, отвратил меня даже от мысли попробовать: спустя месяц после экспериментов он выглядел как полузомби…
А в-третьих, и это главное: если собрать всю ту муру, которой любой из нас ежедневно занимается, окажется, что времени на сон уходит не так уж и много.
Человек, ты дочитал до моего комментария! Подумай об этом в свете третьего пункта.
Есть ситуации посложнее. Например, семантическая единица «разбивать»: в английском понимании нужно 10 идентификаторов, соответствующих различным «разбиваниям». В других языках будут другие деления — где-то на 5, а где-то на 20. Стало быть, надо перечислять все логические единицы, которые хотя бы в теории могут описываться разными словами — в любом земном языке.
А хуже всего то, что придётся всё равно создавать отдельную систему для данного языка, которая решает специфические для языка проблемы. В универсальном классификаторе для всех языков не может быть информации о том, что мы едем «на Кипр», но «в Москву». Стало быть, эта информация (на/в) должна храниться где-то в другом месте. И так для каждого слова :)
Допустим, есть класс «мебель». Оттуда я разделяю на подклассы «металлическая» и «деревянная». А теперь в каждом подклассе будет «кухонная мебель» (соответственно, деревянная/кухонная и металлическая/кухонная).
Теперь если мне нужна кухонная мебель (неважно, деревянная или металлическая), у меня проблема: нет общего подкласса «кухонная мебель». Придётся перечислять оба подкласса явным образом.
Если же сделать сначала общий класс «кухонная мебель», а оттуда уже подклассы «деревянная» и «металлическая», проблема возникнет, когда мне потребуется любая деревянная (кухонная и не-кухонная) мебель.
Всё это решается определёнными костылями, вопрос лишь в накоплении критической массы проблем, которая может сломать эту систему.
То есть выгоды его абсолютно очевидны. Мой скепсис связан не с непониманием выгод, а с неверием в принципиальную возможность создания «универсального классификатора» применительно к задаче перевода.
Как говорил Сепир, «Миры, в которых живут различные общества, — это разные миры, а вовсе не один и тот же мир с различными навешанными на него ярлыками».
Штука в том, что цели у них, видимо, другие. Полагаю, что в «универсальной семантике» никто не будет классифицировать город по критерию «в-город» или «на-город» — это внутриязыковые игры.
Для ИИ на внеязыковом уровне это может быть полезно, но при разборе предложений конкретного языка без такой специфической инфы не обойтись.
Надо сказать, что как раз в disambiguation статистика, насколько я понимаю, может как раз неплохо работать. Понятно, что одна трактовка слова встречается чаще в одних контекстах, а другая — в других.
Но всё равно без синтаксического анализа придумать хороший алгоритм трудно. Например, что такое «контекст»? Для языка со свободным порядком слов контекст могут формировать слова, достаточно удалённые друг от друга. Да и в английском между соседними словами можно вляпать какой-нибудь причастный оборот.
Английский — язык с достаточно жёстко фиксированной структурой, и с ним порою неплохо справляются парсеры, основанные на более простых принципах. Видимо, мотивация «переезжать» не слишком высока.
XDG это просто формализм, язык программирования. Его мощь определяется исключительно тем, какого рода конструкции вы на нём будете описывать.
Прочие методы я оцениваю по тривиальным критериям — по тем же, что и язык программирования:
1) выразительные средства (поддерживает ли ту или иную парадигму);
2) качество существующих компиляторов.
«Родственные» к XDG методы не станут «круче» — это всё механизмы одного и того же уровня. Реально круче может быть лишь совершенно иного порядка метод — а я таковых, к сожалению, не знаю. Только чисто статистический подход является действительно другим.
Но есть и важные различия, о которых, в принципе, говорилось.
Например, «на»-места и «в»-места. Мы едем в город Тампере, а финн едет «на» город Тампере. Так как же быть, в какой класс включать?
По-русски можно «играть» в игру, а можно играть на музыкальном инструменте. По-фински нельзя «играть» на музыкальном инструменте, зато можно «звонить» — как по телефону. А по-русски «звонить» на инструменте нельзя…
И так во всём.
Многие фирмы явно запрещают распространение своих игр двадцатилетней давности (при всём при том, что легально купить их нигде нельзя) — видимо, ещё рассчитывают…
В OpenNLP Tools есть sentence detector/splitter, да и вроде там не сильно завязано на конкретные языки…