~言語処理やプログラミング以前の基礎知識
use chunagon_bccwj
select top 100 dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20) from 短単位
select top 100 サンプルID,dbo.fn前文脈(サンプルID,出現書字形開始位置,20),キー,dbo.fn後文脈(サンプルID,出現書字形開始位置,20),語彙素,語彙素読み,品詞 from 短単位 where 語彙素 like '鰻'
select 作品名, count(*) as 総語数 from 短単位 as S inner join 書誌情報 as B on S.サンプルID=B.サンプルID where S.サブコーパス名 like '平安' group by 作品名
select 作品名, count(*) as 総語数,sum(CASE WHEN 本文種別='歌' THEN 1 ELSE 0 END) as 歌語数 from 短単位 as S inner join 書誌情報 as B on S.サンプルID=B.サンプルID where S.サブコーパス名 like '平安' group by 作品名
use unidicSQL
select * from 短単位語彙素 where 語彙素 like '夏%' and 語彙素読み like 'ナツ%'
SELECT 語形,入力活用型 from 短単位語形 as F inner join 短単位語彙素 as L on L.語彙素ID=F.語彙素ID where 語彙素 like '見る' and 語彙素読み like 'ミル'
SELECT 語形,書字形 from 短単位書字形 as O inner join 短単位語形 as F on F.語形ID=O.語形ID inner join 短単位語彙素 as L on L.語彙素ID=F.語彙素ID where 語彙素 like '見る' and 語彙素読み like 'ミル'
select L.語彙素,SUW.レジスター,count(SUW.キー) from 短単位語彙素 as L inner join chunagon_bccwj.dbo.短単位 as SUW on L.語彙素ID=SUW.語彙素ID where L.語彙素 like '夏%' and L.語彙素読み like 'ナツ%' group by L.語彙素, SUW.レジスター
select L.語彙素,SUW.レジスター,count(SUW.キー) from 短単位語彙素 as L left join chunagon_bccwj.dbo.短単位 as SUW on L.語彙素ID=SUW.語彙素ID where L.語彙素 like '夏%' and L.語彙素読み like 'ナツ%' group by L.語彙素, SUW.レジスター
select top 100 s1.語彙素,s1.語彙素読み,s1.品詞,dbo.fn前文脈(s1.サンプルID,s1.出現書字形開始位置,20),s1.キー,dbo.fn後文脈(s1.サンプルID,s1.出現書字形開始位置,20) from 短単位 as s1 inner join 短単位 as s2 on s1.サンプルID=s2.サンプルID and s1.連番 + 10 = s2.連番 where s2.語彙素 like '鰻'
select top 100 s1.キー+s2.キー+s3.キー+s4.キー+s5.キー+s6.キー, s1.語彙素+'/'+s2.語彙素+'/'+s3.語彙素+'/'+s4.語彙素+'/'+s5.語彙素+'/'+s6.語彙素 from 短単位 as s1 inner join 短単位 as s2 on s1.サンプルID=s2.サンプルID and s1.連番 + 10 = s2.連番 inner join 短単位 as s3 on s2.サンプルID=s3.サンプルID and s2.連番 + 10 = s3.連番 inner join 短単位 as s4 on s3.サンプルID=s4.サンプルID and s3.連番 + 10 = s4.連番 inner join 短単位 as s5 on s4.サンプルID=s5.サンプルID and s4.連番 + 10 = s5.連番 inner join 短単位 as s6 on s5.サンプルID=s6.サンプルID and s5.連番 + 10 = s6.連番 where s1.サブコーパス名='平安' order by s1.サンプルID, s1.連番
括弧でくくったSELECT文に名前を付けて、あたかもテーブルであるかのように扱える
select x.サブコーパス名, count(*) from (select サブコーパス名, count(*) as 語数 from 短単位 where 品詞 not like '記号%' group by 語彙素ID,サブコーパス名) as x group by x.サブコーパス名
use chunagon select x.サブコーパス名, count(*) as 異なり語数, sum(語数) as 延べ語数, CONVERT(float,count(*))/sum(語数) as TTR from (select サブコーパス名, count(*) as 語数 from 短単位 where 品詞 not like '記号%' group by 語彙素ID,サブコーパス名) as x group by x.サブコーパス名
#で始まるテーブル名は、DB切断後削除される一時テーブルとなる。現在の権限でも一時テーブルは作成できる。
select * into 鰻テーブル from 短単位 where 語彙素='鰻'
create table #ogiso_tmp ( ID int ,調査語彙素 varchar(10) ,調査語彙素読み varchar(10) )
テーブル | |||
列名1 | 列名2 | 列名3 | |
レコード1 | |||
レコード2 |
データベース問い合わせ言語
とりあえずこれだけ!覚える
SELECT 語彙素,語彙素読み FROM 短単位
SELECT TOP 100 語彙素,語彙素読み FROM 短単位
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞='接続詞'
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%'
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞 LIKE '形容詞%' AND 語彙素読み LIKE '[カ-コ]%'
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞='接続詞' ORDER BY 語彙素読み
SELECT 語彙素,語彙素読み FROM 短単位 WHERE 品詞='接続詞' GROUP BY 語彙素,語彙素読み
SELECT 語彙素,語彙素読み,count(語彙素) FROM 短単位 WHERE 品詞='接続詞' GROUP BY 語彙素,語彙素読み
SELECT 語彙素,語彙素読み,count(語彙素) FROM 短単位 WHERE 品詞='接続詞' GROUP BY 語彙素,語彙素読み ORDER BY 語彙素読み
SELECT 語彙素,語彙素読み,count(語彙素) FROM 短単位 WHERE 品詞='接続詞' GROUP BY 語彙素,語彙素読み ORDER BY count(語彙素) DESC
※括弧内はwindowsの同等コマンド。オプションや挙動は異なる
apt-get でインストールできる
sudo apt-get install libxml2
sudo apt-get install mecab
sudo apt-get install mecab-ipadic-utf8
mecab file | less
mecab file > 保存先ファイル
mecab -d unidicディレクトリ file | less
→できない
<info date="2018/05/30"> <weather>くもりのち雨</weather> <img>http://www.drk7.jp/MT/images/MTWeather/214.gif</img> <weather_detail>東の風 のち 北東の風 くもり 昼前 から 雨</weather_detail> <wave>波 1.5メートル のち 2メートル</wave> <temperature unit="摂氏"> <range centigrade="max">23</range> <range centigrade="min">19</range> </temperature> <rainfallchance unit="%"> <period hour="00-06">20</period> <period hour="06-12">50</period> <period hour="12-18">70</period> <period hour="18-24">70</period> </rainfallchance> </info>
<?xml version="1.0" encoding="Shift_JIS" ?>
<, >, &
曽 🍺
下記のデータ(青空文庫の夏目漱石作品を整形したもの)をダウンロードし、デスクトップに展開(解凍)してください。「なつめそうせき(夏目漱石)」というフォルダができます。
正規表現対応のテキストエディタがない人は下記からサクラエディタ(V2)をインストールしてください。
走[らりるれろ] でgrepした結果を置換するにはどうしたらいいか
次のデータ(「こころ」Wordファイル)をダウンロードして下記の課題を行え。
ただし、データ中に現れる記号は下記のようになっている(青空文庫形式)。
《》:ルビ (例)私《わたくし》は |:ルビの付く文字列の始まりを特定する記号 (例)先生一人|麦藁帽《むぎわらぼう》を [#]:入力者注 主に外字の説明や、傍点の位置の指定 (数字は、JIS X 0213の面区点番号、または底本のページと行数) (例)※[#「てへん+劣」、第3水準1-84-77]
kokoro.txt | 225 | 先生も | それぎり | 何ともいわなくなった。 |
kokoro.txt | 244 | 私もその話は | それぎり | にして切り上げた。 |
太陽コーパス 近代語 書き言葉 日本語話し言葉コーパス 現代語 話し言葉 現代日本語書き言葉均衡コーパス 現代語 書き言葉 日本語歴史コーパス 古代~近代語 書き言葉
太陽コーパス 近代語 書き言葉 日本語話し言葉コーパス 現代語 話し言葉 現代日本語書き言葉均衡コーパス 現代語 書き言葉 日本語歴史コーパス 古代~近代語 書き言葉