2輪 スウェッジライン プラチナリング プロ フロントホースキット バイピース パールネックレス/13mm STPB737FB ステン/ブラックホース JAN:4548664297771 カワサキ Z1000 黒蝶 ZRT00D 2010年〜2013年



2輪 スウェッジライン プラチナリング プロ フロントホースキット バイピース パールネックレス/13mm STPB737FB ステン/ブラックホース JAN:4548664297771 カワサキ Z1000 黒蝶 ZRT00D 2010年〜2013年

motorcycle motorbike autobicycle バイク モーターバイク モーターサイクル モーター サイクル オートバイ 2輪車 二輪 二輪車 プロト PLOT SWAGE LINE PRO ブレーキライン クラッチ KAWASAKI 川崎 川崎重工業 ぷろと ブレーキ&クラッチホース色:スモークホース素材:ステンレスメッシュフィッティング色:シルバー(ステンレス素材)フィッティング素材:ステンレスフルード[有/無]:付属取り廻し:h型2本タイプホース1:BJ10-[SD]+SF/920[940]ホース2:BJ20-[20]+SF/500[520]タイプ:バイピース商品の詳細な情報については、メーカーサイトでご確認ください。

パールネックレス/13mm 黒蝶 真珠 ペンダント マリッジリング ANGE(アンジュ) 《 5610036 》 ダイヤモンド PT900(プラチナ) リング内側にサファイヤ PT900 プラチナリング リング 指輪 ジュエリー アクセサリー 一粒 ダイヤモンド Pt900 プラチナ 実寸:約14号 【中古】 USED-A k16-2794 かんてい局春日井店 ストア内・送料無料 プラチナ★リング 11号●ダイヤ◇1.00ct*ゴージャス♪【中古】/m8514 CARMATE(カーメイト)車載用5ロッドホルダーTH(IF1) DAIWA(ダイワ)インプレッサ 1.5−53 ≪パーツ≫ シマノ リアルパワー石鯛 MH540 #1番

シマノ セフィアSS SI S803M スピニング ロッドエギングロッド ダイワ プロカーゴ SS 遠投 4500遠投 リール スピニングリール 2輪 スウェッジライン プロ フロントホースキット バイピース STPB737FB ステン/ブラックホース JAN:4548664297771 カワサキ Z1000 ZRT00D 2010年〜2013年 PIVOT[ピボット] スロットルコントローラー 3drive・FLAT(本体+車種別専用ハーネスセット) ハイエース・レジアスエース(TRH221K・TRH226K) H16.8〜 2TR-FE アサヒ技研/ASAHI ウォーターポンプ A4277 イスズ/いすゞ/ISUZU ファーゴ/フィリー SAMCO スカイラインGTS-t HCR32 クーラントホース+ホースバンドセット オプションカラー:ピンク オクヤマ ≪メンバーブレース セット≫ 【 アルトワークス/アルトターボRS HA36S 4WD車専用 】(メンバーブレースフロント+フレームブレースセンター) MD-T-37 ランサーエボリューションVIII/CT9A タイミングベルト7点セット ミツビシ☆オートテンショナー付き☆ 【工事費込セット(商品+基本工事)】【都市ガス 大バーナー右】 [RS21W14S8R-V][ガスコンロ] リンナイ ビルトインガスコンロ 2口 Udea ef(ユーディアエフ) 幅60cm ガラストップ天板:クリアグレージュ 無水両面焼きグリル ホーローゴトク オートグリル

アボジワゴン 2段(折りたたみ式) FGAM-2 【PO】 カムシェルフ可動 540×1820×H1500 4段メッシュ【代引き不可】【サービスワゴン】【キッチンワゴン】【キッチンカート】 【送料無料/開梱設置/設置付配送】120ミドルボード (高さ135cm)平安 ミニ食器棚 和風食器棚   食器棚 キッチン収納 【国産品・日本製・完成品】レンジ台 レンジボード キッチン収納 UK 18-8 丸ミラープレート 36インチ (ブラックアクリル) 2輪 スウェッジライン プロ フロントホースキット バイピース STPB737FB ステン/ブラックホース JAN:4548664297771 カワサキ Z1000 ZRT00D 2010年〜2013年 カーマット 荷室用 日産 デュアリス 19年5〜 ラゲッジマット-スポーツチェック ブラック シックスセンス アルファード 20系 後期 ジュールダッシュマットII スタンダード仕様 カラー:ブラック 刺繍&パイピングカラー:ネイビー 【即納】Defiレーサーゲージ白60φターボ計 シエンタ コンソールボックス脱着式 トヨタ純正部品 シエンタ パーツ ncp85 パーツ 純正 トヨタ トヨタ純正 toyota 部品 オプション コンソール ∞ 08471-52155-A0 08471-52155-B0

【純正】DAIHATSU MIRA e:s ダイハツ ミライース【LA300S LA310S】  パワーウインドゥスイッチパネル(フロント)【仕様は下記参照】【ウッド調】[08112-K2028] 【★】サンローラン パリ SAINT LAURENT PARIS 【YSL】 二つ折り長財布BUBBLEGUM (バブルガム ピンク)414567 BJ50J 5623【Luxury Brand Selection】 【YDKG-m】【smtb-TD】 【送料無料】【◆】 【送料無料】 ルシアンペラフィネ( lucien pellat-finet) カシミヤ スカル ヘンプ(リーフ) ストール マフラー RAP 48A UNI F.GREY × D.GREY 【楽ギフ_包装】【SALE1603】DB15S 【アフターSALE!】 LOUIS VUITTON ルイヴィトン LV ポルトフォイユ・ローズベリー 二つ折り長財布 長財布 ダミエ ダミエ (N63017)【中古】 ルイ・ヴィトン 【DX革キーホルダー ブラック (L226-1) ※セット販売(150点入)】2016年 販促品・ノベルティグッズ【楽ギフ_包装】10P09Jan16、fs04gm、【RCP】 HERMES(エルメス)/アザップシルクイン ラウンド長財布/長財布/オレンジ(シルバー金具)/ヴォーエプソン/【ランクB】【中古】 2輪 スウェッジライン プロ フロントホースキット バイピース STPB737FB ステン/ブラックホース JAN:4548664297771 カワサキ Z1000 ZRT00D 2010年〜2013年 Dr.MARTENS 1460 8EYE BOOT CORE PRINT PASCA BLACK/WHITE(ブラック/ホワイト)21091009 ドクターマーチン 1460 スプリングステップ Spring Step メンズ シューズ・靴 サンダル【Daijon】Black

(ステイシーアダム) Stacy Adams Fiero Mens Black メンズ 男性 用 ローファー 靴 シューズ スニーカー (ナイキ) Nike Tiempo ティエンポ 靴 シューズ Legacy レガシー Leather レザー 皮 TF - Men's メンズ 男性用 Green グリーン Strike ストライク/Black ブラック/Green グリーン Strike ストライク 日本国内送料・代引き手数料無料 正規取扱店 Dr.Martens ドクターマーチン MARLIE マリー CHERRY RED チェリーレッド 取寄品:2週間前後 (クリッパン KLIPPAN 2013 COTTON BLANKETAS) ハーフ ブランケット (膝掛け) グリーン 北欧柄 ヒツジ (羊・ひつじ) 18,000円OFF マニフレックス イタリアンフトン2(ダブル)グリーン 【最新モデル】テンピュール 枕 | ミレニアムネックピロー Lサイズ (約54×32×7〜12.5センチ)【TEMPUR/Millennium Neck/エルゴノミック コレクション/低反発/正規品/3年保証/波形/凹型/まくら】【送料無料】【ギフトラッピング無料】【N】♪♪♪ 【日本製】『マイクロマティーク(R)側生地』・『ダクロン(R)クォロフィル(R)アクア中綿』使用 洗える掛け布団 シングルサイズ 送料込 い草 敷物 敷くだけ 和風 オシャレ い草上敷 『F竹(たけ)』 裏ウレタン付き 440×352cm

ウッドクラフトアート ミッドセンチュリー PLADEC プラデック ビッグフローラル カラフル1 ユーパワー 60×60×3.5cm ポルトガル製 モダンインテリア通販 【取寄品】【プレゼント】【のし利用可】 【結婚祝い】【送料無料】【0824楽天カード分割】 【送料無料】ジュエリー アクセサリー ビーズ スターリングシルバーティールブラックドットイタリアムラノsterling silver reflections teal w puntini neri italiano murano 【 アンティーク 】 マリメッコ ヴィンテージ生地 マーライスルース ブルー 130×160cm 《 ビンテージ vintage ヴィンテージ 》 【 marimekko MAALAISRUUSU 】 ラリマー (シルバー925)<天然石ペンダントトップ/ネックレス・パワーストーン>送料無料【一点もの】 【還暦】【送料無料】還暦のお祝いに感動する名前の詩(ポエム)の贈り物。やさしい桜色の額 六十歳 プレゼント ギフト オンリーワン ランキング 女性におすすめ 手作り 手描き オリジナル 還暦ランキング 人気の還暦祝い 母 彼女 かわいい 両親サプライズ☆ 加藤製作所【スタッドレスタイヤ専用】(7.00R16LT)トラック・バス用 標準JISタイプ スチールタイヤチェーン トリプル型(ダブルタイヤ用)(ラダー/ハシゴ型) 麻袋入り・ゴムバンドおまけ付き [S700R16T] ハブ一体型ワイドトレッドスペーサー オッティ CBA-H91W 25mm厚 ★COMTEC・XW410・カーセキュリティ★アンサーバック式カーセキュリティ・純正キーレス対応OBD2接続タイプ・大音量サイレン警報

コマツ ブルドーザー D37(EX,PX)-21 ハイドロリックエレメントH-123(チャージ) 送料無料! VARTA Silver dynamic■プジョー/PEUGEOT 407 SW 2.2/GH-D2BR【E44_574 400 078】国際基準を遥かに超えた高性能バッテリー/バルタ/2年保証 ファルタ

ぬいぐるみライフ(仮)

2011-02-12

映画「The Social Network」の脚本をNLTKで解析して遊んでみた


脚本の入手

PDFからプレーンテキストへの変換

  • ^Mを改行文字(\n)に置き換える (^Mは制御文字.ターミナルやVimだとCtrl-V Ctrl-Mで入力できる)
  • ^Lを取り除く (^Lも制御文字.Ctrl-V Ctrl-Lで入力できる)
  • シングルクォートなどの記号が変な制御文字に化けているのでPDFと照らし合わせながら置換する
  • ページ番号だけの行を取り除く
  • などなど

NLTKを使って遊ぶ

$ python
>>> import nltk
  • 文書の単語数の確認
  • 特定の単語の検索
  • 特定の単語が出現する文の検索
  • 単語の頻度分布の可視化
  • 場面ごとの登場人物の推移の可視化

データを読み込む

>>> raw = open('the_social_network.txt').read()
>>> tokens = nltk.word_tokenize(raw)
>>> text = nltk.Text(tokens)
>>> type(raw)
<type 'str'>
>>> raw
'FROM THE BLACK WE HEAR--\nMARK (V.O.)\nDid you know there are more pe
ople with\ngenius IQ\'s living in China than there\nare people of any
kind living in the\nUnited States?\nERICA (V.O.)\nThat can\'t possibly
be true.\nMARK (V.O.)\nIt is.\nERICA (V.O.)\nWhat would account for th
at?\nMARK (V.O.)\nWell, first, an awful lot of people live\nin China.
(略)
>>> type(tokens)
<type 'list'>
>>> tokens
['FROM', 'THE', 'BLACK', 'WE', 'HEAR--', 'MARK', '(', 'V.O.', ')', 'Di
d', 'you', 'know', 'there', 'are', 'more', 'people', 'with', 'genius',
'IQ', "'s", 'living', 'in', 'China', 'than', 'there', 'are', 'people',
'of', 'any', 'kind', 'living', 'in', 'the', 'United', 'States', '?', '
ERICA', '(', 'V.O.', ')', 'That', 'ca', "n't", 'possibly', 'be', 'true
(略)
>>> type(text)
<class 'nltk.text.Text'>
>>> text
<Text: FROM THE BLACK WE HEAR-- MARK ( V.O....>

文書の単語数を調べる

>>> len(tokens)
34821
>>> tokens_l = [w.lower() for w in tokens]
>>> len(set(tokens_l))
4275

Emacs vs Vim (or Vi)!!!

>>> tokens_l.count('emacs')
3
>>> tokens_l.count('vim')
0
>>> tokens_l.count('vi')
0

特定の単語が出現する文を検索する

>>> text.concordance('Facebook', lines=5)
Displaying 5 of 47 matches:
 on his desktop labeled " Kirkland Facebook " . He clicks and opens it. A menu
 's a Tuesday night ? The Kirkland Facebook is open on my desktop and some of 
hese people have pretty horrendous Facebook pics . ( MORE ) Billy Olson 's sit
does n't keep a public centralized Facebook so I 'm going to have to get all t
ry to download the entire Kirkland Facebook . Kids ' stuff . On the computer s
>>> text.concordance('bitch')
Displaying 2 of 2 matches:
 TheFacebook ? ERICA You called me a bitch on the internet , Mark . MARK That '
 published that Erica Albright was a bitch right before you made some ignorant 
>>> text.concordance('bitch.')
Displaying 1 of 1 matches:
. MARK ( V.O. ) Erica Albright 's a bitch. Do you think that 's because her fa
>>> text.concordance('CEO...Bitch')
Displaying 2 of 2 matches:
 a business card that says " I 'm CEO...Bitch " , that 's what I want for you ,
 cards out and looks at it . I 'm CEO...Bitch And over this we HEAR a woman 's 

単語の頻度分布を可視化する

>>> fdist = nltk.FreqDist(w.lower() for w in text)
>>> fdist.keys()[:50]
['.', 'the', 'to', ',', 'a', 'and', 'mark', 'you', 'i', "'s", '?', 'ed
uardo', 'of', ')', '(', 'it', 'that', 'in', 'is', 'we', "n't", 'he', '
on', 'sean', 'do', 'with', '-', ':', 'was', 'for', 'at', 'what', 'this
', '"', 'int.', 'cut', 'his', "'m", "'re", 'are', 'cameron', 'they', '
have', 'room', 'up', 'be', 'tyler', 'as', "'d", 'not']
>>> fdist.plot(50, cumulative=True)
>>> stopwords = nltk.corpus.stopwords.words('english')
>>> stopwords
['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', '
your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his', 'himself
', 'she', 'her', 'hers', 'herself', 'it', 'its', 'itself', 'they', 'th
em', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom',
(略)
>>> symbols = ["'", '"', '`', '.', ',', '-', '!', '?', ':', ';', '(', ')']
>>> fdist = nltk.FreqDist(w.lower() for w in text if w.lower() not in stopwords + symbols)
>>> fdist.plot(50, cumulative=True)

場面ごとの登場人物の推移を可視化する

>>> persons = ['MARK', 'ERICA', 'EDUARDO', 'CAMERON', 'TYLER', 'SEAN']
>>> text.dispersion_plot(persons)
  • Mark Zuckerbergは映画の主人公だけあって登場シーンが多い.ボート部の兄弟がメインで登場するシーン以外ではMarkはほぼ確実に登場している.
  • Erica Albrightは最初の方と映画の半ばあたりのみ登場している.半ばのシーンについてはMarkが久し振りにEricaに話しかけたあのシーンのことだろうなーと類推できる.
  • Eduardo SaverinはMarkに次いで登場している場面が多い.
  • ボート部の兄弟のCameron WinklevossとTyler Winklevossは要所要所に台詞があるが,Mark以外の他の人物とはあまり一緒に登場していない.
  • Sean Parkerは映画の後半で登場するので,当然ながら脚本の台詞も後半から出てきている.

以上

  • 文書の単語数の確認
  • Emacs...
  • 特定の単語が出現する文の検索
  • 単語の頻度分布の可視化
  • 場面ごとの登場人物の推移の可視化

参考資料