Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
B3 コアタイム 第3回目 ( 2014年11月28日(金) )
Search
MIKAMI-YUKI
November 28, 2014
Education
170
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
B3 コアタイム 第3回目 ( 2014年11月28日(金) )
MIKAMI-YUKI
November 28, 2014
More Decks by MIKAMI-YUKI
See All by MIKAMI-YUKI
2016年_年次大会_発表資料
mikamiy
0
140
文献紹介_10_意味的類似性と多義解消を用いた文書検索手法
mikamiy
0
360
文献紹介_9_コーパスに基づく動詞の多義解消
mikamiy
0
140
文献紹介_8_単語単位による日本語言語モデルの検討
mikamiy
0
110
文献紹介_7_自動獲得した未知語の読み・文脈情報による仮名漢字変換
mikamiy
0
130
文献紹介_6_複数の言語的特徴を用いた日本語述部の同義判定
mikamiy
0
120
文献紹介_5_マイクロブログにおける感情・コミュニケーション・動作タイプの推定に基づく顔文字の推薦
mikamiy
0
160
文献紹介_4_結合価パターンを用いた仮名漢字変換候補の選択
mikamiy
0
420
文献紹介_3_絵本のテキストを対象とした形態素解析
mikamiy
1
430
Other Decks in Education
See All in Education
[2026前期火5] 論理学(京都大学文学部 前期 第14回)「計算は、証明ではない——ハルシネーションを三層ハーモニーで診る」
yatabe
0
290
ちいかわを読め
uchi8977
1
380
AIがコードを書く時代に、何を教えるのか / What Should We Teach in the Age of AI-Generated Code?
ichiroc
1
580
セキュリティ担当がいない中小医療機関を院外のRISSはどう支えるべきか / How External RISS Can Help Small Medical Institutions
eller86
1
210
Sekolah Sabat - Triwulan 3 2026 - Pelajaran 12
hiola
0
12k
Antigravityを使ってGeminiAPI(NanobananaPro)と連携して挿絵メーカーを作った
yoshimura_datam
0
250
【デザイナー就活講座】 デザイナー就活市場・企業探し・ポートフォリオのポイント
koheihasebe
0
670
GENERAL PHARMACOLOGY
pawan_pharm
0
160
新入社員を「あの子」と呼ばない運動 -PBL その前に- / Stop Calling New Hires "Kids"
aokiplayer
2
890
批判的応用言語学ワークショップ(2026-08-12 お茶の⽔⼥⼦⼤学)
terasawat
0
200
2026年度秋学期 統計学 講義の進め方と成績評価について (2026. 9. 28)
akiraasano
PRO
0
210
[2026前期火5] 論理学(京都大学文学部 前期 第13回)「走って、止まって、積み上がる」
yatabe
0
250
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
490
A brief & incomplete history of UX Design for the World Wide Web: 1989–2019
jct
2
510
Keith and Marios Guide to Fast Websites
keithpitt
413
23k
Stop Working from a Prison Cell
hatefulcrawdad
274
21k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
58k
Intergalactic Javascript Robots from Outer Space
tanoku
273
27k
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
530
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.9k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
570
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
1
6.3k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
Being A Developer After 40
akosma
91
590k
Transcript
「入門 自然言語処理」 2章:テキストコーパスと語彙資源へのアクセス B3 三上侑城
もくじ •テキストコーパスへのアクセス •条件付き頻度分布 •語彙資源 •WordNet
テキストコーパスへのアクセス •テキストコーパスとは? →様々なテキストが入っている テキスト集 →本、チャットの会話、台本、 レビューなどがある ※研究でコーパスを用いる際には、その サイズと種類(どのぐらいの文量でどの ような話か)を明示する。
テキストコーパスへのアクセス ・入っている電子書籍を見てみる >>>import nltk >>> nltk.corpus.gutenberg.fileids() ※ファイルは以下のディレクトリにある /home/UserName/nltk_data/corpora/gutenberg
テキストコーパスへのアクセス ・電子書籍を読み出す >>>emma = nltk.corpus.gutenberg.words('austen-emma.txt') ・単語数を調べる >>>len(emma)
テキストコーパスへのアクセス ・前回のtext読み出し&検索 >>>from nltk.book import * >>>text1.concordance("test") ・今回のtext読み出し&検索 >>>emma =
nltk.Text(nltk.corpus.gutenberg.words (‘austen-emma.txt’)) >>>emma.concordance('surprize')
テキストコーパスへのアクセス しかし、こんなに長い名前を毎回タイプするの は面倒くさいし大変….. もっと短く書く方法がある >>>from nltk.corpus import gutenberg >>>gutenberg.fileids() #テキスト一覧表示
>>>emma = gutenberg.words('austen-emma.txt')
テキストコーパスへのアクセス ・Webテキストを読み出す >>>from nltk.corpus import webtext >>>for fileid in webtext.fileids
(): ... print fileid, webtext.raw(fileid)[:65], ’...’ ... ・チャットを読み出す 上記の”webtext”全てを”nps_chat”に変更
テキストコーパスへのアクセス ・ブラウンコーパス 一番古い電子コーパスで様々なジャンルの ものが入っている(教科書P45の表2-1参照) >>>from nltk.corpus import brown >>>brown.categories() >>>brown.words(categories='news')
>>>brown.words(fileids=['ca16']) ※例 ID:A16 , ファイル:ca16 , ジャンル:ニュース
テキストコーパスへのアクセス ・ロイターコーパス ニュース関連の文章が収録 >>>from nltk.corpus import reuters >>>reuters.fileids() >>>reuters.categories()
テキストコーパスへのアクセス ・就任演説コーパス 大統領の就任演説が収録 >>> from nltk.corpus import inaugural >>>inaugural.fileids() ※ここでは先頭4文字が年号なことを利用し、年号
の情報のみを受け取ってみる。 >>>[fileid[:4] for fileid in inaugural.fileids()]
テキストコーパスへのアクセス ・他の言語のコーパス 他の言語を使用するには文字コーディング が必要となる。第3章でその説明がある。 ・独自コーパス 自分自身が用意したコーパスも使用可能。 方法は教科書P53-54を参考。
条件付き頻度分布 ・条件と事象をペアにして処理を行う。 形式:(条件(ジャンル) , 事象(単語)) >>>from nltk.corpus import brown >>>genre_word
= [(genre,word) ... for genre in ['news','romance'] ... for word in brown.words(categories=genre)] >>>len(genre_word)
条件付き頻度分布 ・ペアになっていること確認 >>>genre_word[:4] #最初の4つのペア >>>genre_word[-4:] #最後の4つのペア
条件付き頻度分布 ・ジャンルごとに単語を調べる ConditionalFreqDist:ペアから度数分布を生成する >>>cfd = nltk.ConditionalFreqDist(genre_word) >>>cfd >>>cfd.conditions() #条件リスト >>>cfd[‘news’]
#newsの条件での分布 >>>cfd['romance'] >>>list(cfd['romance']) ※教科書P59表2-4に各詳細説目あり
語彙資源 ・語彙リストコーパス 一般的に使われる語彙を集めたコーパス スペルミスや一般的でない単語を発見 することによく使用される。
語彙資源 ・テキストのフィルタリング 関数の作成 >>>def unusual_words(text): ... text_vocab = set(w.lower() for
w in text if w.isalpha()) ... english_vocab = set(w.lower() for w in nltk.corpus.words.words()) ... unusual = text_vocab.difference(english_vocab) ... return sorted(unusual) ※x.lower():小文字にする , x.isalpha():アルファベットか判断 x.difference():差分のみを取り出す
語彙資源 ・テキストのフィルタリング 例として以下のテキストを使用する 主に一般的ではないワードを探す >>>unusual_words(nltk.corpus.gutenberg.words ('austen-sense.txt')) 主にネット上で使われるワードを探す >>>unusual_words(nltk.corpus.nps_chat.words())
語彙資源 ・テキストのフィルタリング the , to , alsoなど頻度が高い単語の コーパスもある(ストップワード) >>>from nltk.corpus
import stopwords >>>stopwords.words('english')
WordNet ・WordNetとは 意味により整列された辞書 例 「motorcar」 , 「automobile」は意味が同じ。 つまりこれらは同義語である。
WordNet ・本当に同義語か確かめてみる >>>from nltk.corpus import wordnet as wn >>>wn.synsets('motorcar') ※「motorcar」がどこに属しているか示される
>>>wn.synset('car.n.01').lemma_names() ※ここに属しているものが見える >>>wn.synset('car.n.01').definition() >>>wn.synset('car.n.01').examples()
WordNet ・WordNetの階層構造 WordNetは概念として、階層構造を 想像できる。 ※概念図は教科書P73図2-8を参照
今回の最低限理解して欲しい事 • テキストコーパス = 構造化されたテキスト集 • 各ジャンルやトピックに別れて用意してある • 関数(メソッド)は 『オブジェクト名.メソッド名(送り値)』
で呼び出すことができる 例:word.isalpha() , x.funct(y) など