[~]$ sudo svn checkout https://svn.java.net/svn/sen~svn/trunk/sen /opt/sen
[~]$ cd /opt/sen [/opt/sen]$ sudo ant ・・・ jar: [copy] Copying 1 file to /opt/sen/build/classes/net/java/sen/resources [jar] Building jar: /opt/sen/lib/sen.jar BUILD SUCCESSFUL Total time: 2 seconds [/opt/sen]$
[~]$ cd /opt/sen/dic [/opt/sen/dic]$ sudo ant必要なら ant -Dperl.bin=[Perlのインストール先]\perl というように perl のインストール先を指定する
[~]$ cd /opt/sen/bin [/opt/sen/bin]$ export SEN_HOME=/opt/sen [/opt/sen/bin]$ sh sen.sh Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 done. Please input Japanese sentence: [INFO] Dictionary - token file = /opt/sen/dic/token.sen [INFO] Dictionary - time to load posInfo file = 13[ms] [INFO] Dictionary - double array trie dictionary = /opt/sen/dic/da.sen [INFO] DoubleArrayTrie - loading double array trie dict = /opt/sen/dic/da.sen [INFO] DoubleArrayTrie - loaded time = 0.4[ms] [INFO] Dictionary - pos info file = /opt/sen/dic/posInfo.sen [INFO] Dictionary - time to load pos info file = 1[ms] [INFO] Tokenizer - connection file = /opt/sen/dic/matrix.sen [INFO] Tokenizer - time to load connect cost file = 61[ms] すもももももももものうち すもも (すもも) 名詞-一般(0,3,3) スモモ スモモ も (も) 助詞-係助詞(3,4,1) モ モ もも (もも) 名詞-一般(4,6,2) モモ モモ も (も) 助詞-係助詞(6,7,1) モ モ もも (もも) 名詞-一般(7,9,2) モモ モモ の (の) 助詞-連体化(9,10,1) ノ ノ うち (うち) 名詞-非自立-副詞可能(10,12,2) ウチ ウチ
形態素解析のサンプルに「すもももももももものうち」を使うのは、言語処理の分野でのお約束らしい
[~]$ mvn install:install-file -Dfile=/opt/sen/lib/sen.jar -DgroupId=sen -DartifactId=sen -Dversion=1.2.2.1 -Dpackaging=jar -DgeneratePom=true
$ cat ~/.m2/repository/sen/sen/1.2.2.1/sen-1.2.2.1.pom <?xml version="1.0" encoding="UTF-8"?> <project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <modelVersion>4.0.0</modelVersion> <groupId>sen</groupId> <artifactId>sen</artifactId> <version>1.2.2.1</version> <description>POM was created from install:install-file</description> <dependencies> <dependency> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> <version>1.1.1</version> </dependency> </dependencies> </project>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.snail.exam</groupId>
<artifactId>SENExam</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>SENExam</name>
<url>http://maven.apache.org</url>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
</plugins>
</build>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>sen</groupId>
<artifactId>sen</artifactId>
<version>1.2.2.1</version>
</dependency>
<dependency>
<groupId>com.ibm.icu</groupId>
<artifactId>icu4j</artifactId>
<version>4.6.1</version>
</dependency>
</dependencies>
</project>
package com.snail.exam.senexam;
import com.ibm.icu.text.Transliterator;
import net.java.sen.StringTagger;
import net.java.sen.Token;
/**
* Hello world!
*
*/
public class App {
public static void main(String[] args) {
try {
String kanji = "金がなければくよくよします女に振られりゃなきまする\n"
+ "腹が減ったらおまんま食べて命尽きればあの世行き\n"
+ "有難や有難や\n";
String path = "/opt/sen/conf/sen.xml";
StringBuilder sb = new StringBuilder();
StringTagger tagger = StringTagger.getInstance(path);
Transliterator tr = Transliterator.getInstance("Katakana-Latin");
Token[] token = tagger.analyze(kanji);
if (token != null) {
StringBuilder srcSb = new StringBuilder();
StringBuilder kanaSb = new StringBuilder();
for (int i = 0; i < token.length; i++) {
srcSb.append(token[i].getSurface());
srcSb.append(" ");
kanaSb.append(token[i].getReading());
kanaSb.append(" ");
}
sb.append(srcSb);
sb.append("\n");
sb.append(kanaSb);
sb.append("\n");
sb.append(tr.transform(kanaSb.toString()));
sb.append("\n\n");
}
System.out.println(sb.toString());
} catch (Exception e) {
e.printStackTrace();
}
}
}
金 が なけれ ば くよくよ し ます 女 に 振ら れりゃ なき まする 腹 が 減っ たら お まんま 食べ て 命 尽きれ ば あの世 行き 有難 や 有 難 や キン ガ ナケレ バ クヨクヨ シ マス オンナ ニ フラ レリャ ナキ マスル ハラ ガ ヘッ タラ オ マンマ タベ テ イノチ ツキレ バ アノヨ イキ アリガタ ヤ ユウ ナン ヤ kin ga nakere ba kuyokuyo shi masu on'na ni fura rerya naki masuru hara ga he~tsu tara o manma tabe te inochi tsukire ba anoyo iki arigata ya yuu nan yaちょっとおかしいところがあるけど、りっぱに解析されている。