Bud*_*sey 7 javascript language-agnostic unicode nlp cjk
我有一个想法,可以写一些网络应用程序来帮助我,也许其他人,因为我正在学习这门语言,所以更好地学习日语.
我的问题是该网站将主要是英文,所以它需要流利的日语字符,通常是hirigana和片假名,但后来汉字.我越来越接近完成这个; 我已经发现页面和源文件需要是unicode和utf-8内容类型.
但是,我的问题出在实际编码中.我需要的是操纵假名的文本串.一个例子是:
けす我需要把那个动词转换成te-formけして.我宁愿在javascript中这样做,因为它会帮助我做更多的操作,但是如果我必须只做数据库调用并在数据库中保存所有内容.
我的问题不仅仅是如何在javascript中完成它,还有一些提示和策略用其他语言来做这些事情.我希望能够更多地学习语言学习应用程序,但在这方面我很失落.
si2*_*19e 26
MeCab(最初在 SourceForge上)很棒:它可以让你像文字一样
????????????????
并获得各种好消息
kettle:~$ echo ?????????? | mecab
??? ??,??,*,*,*,*,???,????,????
? ??,???,*,*,*,*,?,?,?
? ??,??,*,*,*,*,?,?,?
??? ???,??,*,*,??????,???,???,?????,?????
?? ???,*,*,*,?????,???,??,??,??
EOS
Run Code Online (Sandbox Code Playgroud)
这基本上是对词性,读数,发音等的详细说明.它也会帮助你分析动词时态,
kettle:~$ echo ??????????? | mecab
???? ??,????,??,?,*,*,????,????,????
?? ??,????,*,*,*,*,??,????,????
? ??,???,??,*,*,*,?,?,?
?? ??,??,*,*,??,???,???,??,??
?? ???,*,*,*,?????,???,??,??,??
EOS
Run Code Online (Sandbox Code Playgroud)
但是,文档都是日文的,设置和弄清楚如何按照您希望的方式格式化输出有点复杂.有一些可用于ubuntu/debian的软件包,以及一系列语言的绑定,包括perl,python,ruby ...
用于ubuntu的Apt-repos:
deb http://cl.naist.jp/~eric-n/ubuntu-nlp intrepid all
deb-src http://cl.naist.jp/~eric-n/ubuntu-nlp intrepid all
Run Code Online (Sandbox Code Playgroud)
要安装的软件包:
$ apt-get install mecab-ipadic-utf8 mecab python-mecab
应该做我认为的伎俩.
Mecab的其他替代方案是ChaSen,它是MeCab的作者多年前写的(现在谷歌顺便工作)和Kakasi,它的功能要小得多.
我肯定会尽量避免滚动你自己的共轭例程.这个问题只是它需要大量的工作,而其他人已经完成了,并且在一天结束时用规则覆盖所有边缘情况是不可能的.
MeCab是统计驱动的,并且对大量数据进行了培训.它采用了一种称为条件随机场(CRF)的复杂机器学习技术,结果非常好.
和日本人一起玩.我不确定你的日语有多好,但是如果你需要mecab的文档帮助或任何随意问这个问题.汉字在开始时可能非常令人生畏.
我的问题不仅是如何在 javascript 中执行此操作,而且还有在其他语言中执行此类操作的一些技巧和策略。
您想要做的是非常基本的字符串操作 - 除了缺少单词分隔符之外,正如巴里指出的那样,尽管这不是技术问题。
基本上,对于现代 Unicode 感知编程语言(我相信 JavaScript 从 1.3 版开始就是这样),日语假名或汉字和拉丁字母之间没有真正的区别 - 它们都只是字符。字符串只是一串字符。
当您必须在字符串和字节之间进行转换时,就会变得困难,因为那时您需要注意所使用的编码。不幸的是,许多程序员,尤其是以英语为母语的程序员往往会掩盖这个问题,因为 ASCII 是拉丁字母事实上的标准编码,而其他编码通常会尝试兼容。如果拉丁字母就是您所需要的,那么您可以幸福地对字符编码一无所知,相信字节和字符基本上是相同的东西 - 并编写破坏任何非 ASCII 的程序。
因此,Unicode 感知编程的“秘密”是这样的:学会识别字符串/字符何时何地与字节相互转换,并确保在所有这些地方都使用了正确的编码,即与将要使用的编码相同用于反向转换,并且可以对您正在使用的所有字符进行编码。UTF-8 正在慢慢成为事实上的标准,通常应该在任何可以选择的地方使用。
典型示例(非详尽):
归档时间: |
|
查看次数: |
3083 次 |
最近记录: |