- Придерживайтесь Unicode и utf-8 везде.
- Держитесь подальше от японских кодировок: euc-jp, shiftjis, iso-2022-jp, но имейте в виду, что вы, вероятно, столкнетесь с ними в какой-то момент, если продолжите.
- Познакомьтесь с сегментером для выполнения сложных задач, таких как анализ POS, сегментация слов и т. Д. Стандартные инструменты, используемые большинством людей, которые выполняют NLP (обработка естественного языка), работают на японском языке в порядке популярности/мощности.
MeCab (первоначально на SourceForge) является удивительным: она позволяет принимать текст, как,
「日本語は、とても難しいです。」
и получить все виды большой информации обратно
kettle:~$ echo 日本語は、難しいです | mecab
日本語 名詞,一般,*,*,*,*,日本語,ニホンゴ,ニホンゴ
は 助詞,係助詞,*,*,*,*,は,ハ,ワ
、 記号,読点,*,*,*,*,、,、,、
難しい 形容詞,自立,*,*,形容詞・イ段,基本形,難しい,ムズカシイ,ムズカシイ
です 助動詞,*,*,*,特殊・デス,基本形,です,デス,デス
EOS
который в основном подробный проглатывание частей речи, чтений, произношений и т. д. Это также поможет вам проанализировать время глагола,
kettle:~$ echo メキシコ料理が食べたい | mecab
メキシコ 名詞,固有名詞,地域,国,*,*,メキシコ,メキシコ,メキシコ
料理 名詞,サ変接続,*,*,*,*,料理,リョウリ,リョーリ
が 助詞,格助詞,一般,*,*,*,が,ガ,ガ
食べ 動詞,自立,*,*,一段,連用形,食べる,タベ,タベ
たい 助動詞,*,*,*,特殊・タイ,基本形,たい,タイ,タイ
EOS
Однако документация все на японском языке, и это немного сложно настроить и выяснить, как форматировать вывод так, как вы хотите. Есть пакеты, доступные для Ubuntu/Debian, и привязки в куче языков, включая Perl, Python, Ruby ...
Апт-РЕПО для убунта:
deb http://cl.naist.jp/~eric-n/ubuntu-nlp intrepid all
deb-src http://cl.naist.jp/~eric-n/ubuntu-nlp intrepid all
пакетов для установки: $ apt-get install mecab-ipadic-utf8 mecab python-mecab
должен сделать трюк, который я думаю.
Другие альтернативы mecab: ChaSen, который был написан много лет назад автором MeCab (который, кстати, работает сейчас в google), и Kakasi, который намного менее мощный.
Я бы определенно постарался не сворачивать ваши собственные процедуры сопряжения. проблема в том, что для этого потребуются тонны и тонны работы, которые другие уже сделали, и охватить все крайние случаи правилами, в конце концов, невозможно.
MeCab управляется статистически и обучается множеству данных. Он использует сложную технику машинного обучения под названием условные случайные поля (CRF), и результаты действительно неплохие.
Удачи с японцами. Я не уверен, насколько хорош ваш японский, но если вам нужна помощь в документах для mecab или о том, что вы можете спросить об этом. Канджи может быть довольно запугивающим в начале.
Вы ищете в какой-то форме, вытекающие? Простите мое невежество, но это выглядит сложнее (для логотипа), чем то, что вы делаете для обычного языка на основе алфавита. – dirkgently
В этом примере нет корневого слова в основном け す, но я меняю す на し и добавляю て. Другой пример: の む изменение む на ん で, чтобы получить の ん で. Простым примером может быть просто.た べ る, который вы бы бросили る и добавили て, чтобы получить た べ て. Надеюсь, это имеет смысл. – percent20
Ваши примеры (как ни странно!) Дают мне понятие (которое, я уверен, неверно), что все, что вам нужно, это строка replacemnet. Даже регулярное выражение (Unicode) будет работать. – dirkgently