三人称の辞書データをつくる。
成果物
三人称代名詞テーブル作成
RustのdieselクレートとRDBMSのSQLite3を使って、三人称代名詞のテーブルを作成する。
1. テーブル作成
マイグレーション作成
diesel migration generate create_ThirdPersons
テーブル作成SQLを書く
up.sql
create table ThirdPersons( id integer not null primary key, value text not null, -- 代表的な表記 ruby text not null default '', -- ふりがな、ルビ comment text not null default '' -- 補足 );
down.sql
drop table ThirdPersons;
マイグレーション実行
diesel migration run
確認
$ sqlite3 ./PersonalPronoun.sqlite3 ... sqlite> select * from sqlite_master; ... table|ThirdPersons|ThirdPersons|10|CREATE TABLE ThirdPersons( id integer not null primary key, value text not null, -- 代表的な表記 ruby text not null default '', -- ふりがな、ルビ comment text not null default '' -- 補足 )
2. レコード作成
マイグレーション作成
diesel migration generate insert_ThirdPersons
TSVを書く
情報源はwikipedia。
ThirdPersons.tsv
彼 かれ 人 彼女 かのじょ 人 奴 やつ 人,俗 小奴 こやつ 人,俗 奴さん やっこさん 人,俗 此奴 こいつ 人,俗 其奴 そいつ 人,俗 彼奴 あいつ 人,俗 彼奴 きゃつ 人,俗 何奴 どいつ 人,俗 こやつ 人,俗 あやつ 人,俗 そやつ 人,俗 野郎 やろう 人,俗 これ 物 あれ 物 それ 物 どれ 物 こちら 人,丁寧 あちら 人,丁寧 そちら 人,丁寧 どちら 人,丁寧
LibreOffice Calcにて連番をid
として振る。TSV→Insert文変換ツールに合わせて先頭二行を追加する。
ThirdPersons.tsv
c c c id value ruby comment 1 彼 かれ 人 2 彼女 かのじょ 人 3 奴 やつ 人,俗 4 小奴 こやつ 人,俗 5 奴さん やっこさん 人,俗 6 此奴 こいつ 人,俗 7 其奴 そいつ 人,俗 8 彼奴 あいつ 人,俗 9 彼奴 きゃつ 人,俗 10 何奴 どいつ 人,俗 11 こやつ 人,俗 12 あやつ 人,俗 13 そやつ 人,俗 14 野郎 やろう 人,俗 15 これ 物 16 あれ 物 17 それ 物 18 どれ 物 19 こちら 人,丁寧 20 あちら 人,丁寧 21 そちら 人,丁寧 22 どちら 人,丁寧
up.sql
Insert文をup.sql
ファイルにコピペする。
up.sql
INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (1,'彼','かれ','人'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (2,'彼女','かのじょ','人'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (3,'奴','やつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (4,'小奴','こやつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (5,'奴さん','やっこさん','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (6,'此奴','こいつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (7,'其奴','そいつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (8,'彼奴','あいつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (9,'彼奴','きゃつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (10,'何奴','どいつ','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (11,'こやつ','','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (12,'あやつ','','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (13,'そやつ','','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (14,'野郎','やろう','人,俗'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (15,'これ','','物'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (16,'あれ','','物'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (17,'それ','','物'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (18,'どれ','','物'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (19,'こちら','','人,丁寧'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (20,'あちら','','人,丁寧'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (21,'そちら','','人,丁寧'); INSERT INTO ThirdPersons (id,value,ruby,comment) VALUES (22,'どちら','','人,丁寧');
down.sql
delete from ThirdPersons where id < 23;
マイグレーション実行
diesel migration run
確認
確認
$ sqlite3 ./PersonalPronoun.sqlite3 ... sqlite> select * from ThirdPersons; 1|彼|かれ|人 2|彼女|かのじょ|人 3|奴|やつ|人,俗 4|小奴|こやつ|人,俗 5|奴さん|やっこさん|人,俗 6|此奴|こいつ|人,俗 7|其奴|そいつ|人,俗 8|彼奴|あいつ|人,俗 9|彼奴|きゃつ|人,俗 10|何奴|どいつ|人,俗 11|こやつ||人,俗 12|あやつ||人,俗 13|そやつ||人,俗 14|野郎|やろう|人,俗 15|これ||物 16|あれ||物 17|それ||物 18|どれ||物 19|こちら||人,丁寧 20|あちら||人,丁寧 21|そちら||人,丁寧 22|どちら||人,丁寧
DBの問題
一人称代名詞のときと同じ問題がある。こちらはだいぶ少ないけど。
- 「野郎」は二人称のときもあれば三人称のときもある
- 「こちら」を「こっち」「ここ」ともいう(人や物は人称でも方角は違うのか? でも「こちら」は方角の意味もある) 指示語参照
対象環境
- Raspbierry pi 3 Model B+
- Raspbian stretch 9.0 2018-11-13
- bash 4.4.12(1)-release
- rustc 1.36.0 (a53f9df32 2019-07-03)
- cargo 1.36.0 (c4fcfb725 2019-05-15)
$ uname -a Linux raspberrypi 4.19.42-v7+ #1219 SMP Tue May 14 21:20:58 BST 2019 armv7l GNU/Linux
前回まで
- Rust自習(じゃんけんゲーム1)
- Rust自習(双方向リスト1)
- Rust自習(単方向リスト1)
- Rust自習(単方向リスト2)
- Rust自習(単方向リスト3)
- Rust自習(単方向リスト4)
- Rust自習(単方向リスト5)
- Rust自習(単方向リスト6)
- Rust自習(単方向リスト7)
- Rust自習(リストのインタフェースを考える)
- Rust自習(連結リスト1)
- Rust自習(連結リスト2)
- Rust自習(連結リスト3)
- Rust自習(連結リスト4)
- Rust自習(連結リストの取得系インタフェース考察)
- Rust自習(連結リスト5)
- Rust自習(連結リストの取得系インタフェース考察2)
- Rust自習(連結リスト6)
- Rust自習(連結リスト7)
- Rust自習(連結リスト8)
- Rust自習(連結リスト9)
- Rust自習(変数名でイテレートする方法)
- Rust自習(iter、iter_mut実装方法)
- Rust自習(連結リスト10)
- Rust自習(rev()実装できず)
- Rust自習(cycle()実装できず)
- Rust自習(じゃんけんゲーム2)
- Rust自習(じゃんけんゲーム3)
- Rust自習(じゃんけんゲーム4)
- Rust自習(じゃんけんゲーム5)
- Rust自習(じゃんけんゲーム6)
- Rust自習(じゃんけんゲーム7)
- Rust自習(じゃんけんゲーム8)
- Rustのアップデート(rustup update)
- Rust自習(SQLite3 1)
- Rust自習(SQLite3 2)
- Rust自習(SQLite3 3)
- Rust自習(日時 1 chrono)
- Rust自習(日時 2 chrono)
- Rust自習(日時 3 chrono)
- Rust自習(日時 4 chrono)
- Rust自習(日時 5 chrono)
- Rust自習(日時 6 chrono)
- Rust自習(日時 7 chrono)
- Rust自習(std::time::SystemTime)
- Rust自習(std::time::Instant)
- Rust自習(std::time::Duration)
- Rust自習(シリアライズ serde 1)
- JSON5とは?
- Rust自習(シリアライズ serde 2 JSON5)
- Rust自習(シリアライズ serde 3 chrono日時型変換)
- Rust自習(diesel 1 SQLite3 ORM)
- Rust自習(diesel 2 SQLite3 ORM)
- Rust自習(diesel 3 SQLite3 ORM)
- Rust自習(diesel 4 SQLite3 ORM)
- Rust自習(diesel 5 SQLite3 ORM)
- Rust自習(diesel 6 SQLite3 ORM)
- Rust自習(diesel 7 SQLite3 ORM serde,chrono)
- Rust自習(diesel 8 SQLite3 ORM serde,chrono)
- Rustで正規表現(regex 1)
- Rustで正規表現(regex 2)
- Rustで正規表現(regex 3)
- Rustで正規表現(regex 4)
- Rustで正規表現(regex 5)
- Rust自習(人称辞典 1)
- Rust自習(人称辞典 2)
- Rust自習(人称辞典 3)
- Rust自習(人称辞典 4)