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
テキスト筆者の性別推定において最適なアルゴリズムの提案
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
shou
November 16, 2017
Technology
63
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
テキスト筆者の性別推定において最適なアルゴリズムの提案
shou
November 16, 2017
More Decks by shou
See All by shou
汎用性を考慮したテキスト書き手の性別推定
koheiyoneda
0
69
Other Decks in Technology
See All in Technology
USB PDを使ってスマホを労わりたい
raspython3
0
180
NDIでApple Vision Proにリアルタイム映像送信
jyouryuusui
0
120
SAENM ~Jupyterで残すPoCの試行錯誤、未来の自分と仲間を助ける記録!~
terapyon
0
110
Metadata - Section 1: HTML Basics
mohab1
0
120
実践!Cloud Run ハンズオン!! / Cloud Run handson
y0hgi
2
280
脆弱性診断って、何をしているの? 〜弱点を見つけて、会社の改善につなげるまで〜
keeg
0
920
PagerDuty Tech Hub-鳴らすけれど、人は動かない
ezaki
0
170
Claude Code本は、どのように執筆チームで書かれたか
oikon48
1
380
Optunaの最新リリースv5.0について
pfn
PRO
0
120
UniFi(ユニファイ)AIカメラの現場活用
ludicmind
1
440
「Docker Desktop不要の時代」は 来たのか?
ueponx
0
770
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
Featured
See All Featured
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.9k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Leading Effective Engineering Teams in the AI Era
addyosmani
9
2.7k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
10
1.4k
Ruling the World: When Life Gets Gamed
codingconduct
0
400
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
410
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
320
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
Large-scale JavaScript Application Architecture
addyosmani
516
110k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
123
22k
Bootstrapping a Software Product
garrettdimon
PRO
306
120k
Transcript
ςΩετචऀͷੑผਪఆʹ͓͍ͯ ࠷దͳΞϧΰϦζϜͷఏҊ σΟδλϧਤॻؗݚڀࣨ .ถా߁ฏ 1
લճͷൃද 2 εϥΠυຕ
લճͷൃද 3 εϥΠυຕ
ࠓճͷਐḿ 4 ੑผϥϕϧ͖ͷςΩετσʔληοτΛऔಘ ాΒͷख๏<>ͷ࣮ΛࢼΈΔ ϥϯμϜϑΥϨετʹΑΔஶऀͷੑผਪఆ<><>ΛಡΜͩ
ੑผϥϕϧ͖ͷςΩετσʔλΛऔಘ 5
ݱঢ়ͷσʔλ 6 5XJUUFS͔Βऔಘͨ͠σʔληοτ͕طʹ͋Δ ੑผϥϕϧ͚ʹϊΠζ͕͋ΔՄೳੑ ൚༻ੑ͕͍ 5XJUUFSҎ֎͔Βऔಘͨ͠σʔλ͕͋ΕΑΓ҆৺
σʔλͷೖखઌ 7 ϝσΟΞΛൺֱ メディア 性別情報 抽出の⼤変さ 備考 Twitter ◦(外部サービス)
易しい ブログ ◦(⼀部) 普通 筆者は⾃然な形で⽂書を書く 新聞 ☓ 普通 筆者はフォーマルな形式で⽂書を書く 雑誌 ☓ 難しい
σʔλͷೖखઌ 8 ϒϩάαʔϏεΛൺֱ ブログ名 性別情報 備考 アメーバブログ ◦ 芸能⼈がよく利⽤している
FC2ブログ ☓ はてなブログ ☓ Yahooブログ ◦ ランダムに記事を取得できる機能あり Seesaaブログ ☓ So-netブログ ☓ ライブドアブログ ☓
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ 9
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ " ϥϯμϜʹϒϩάΛऔಘ͢Δ 10 ϥϯμϜϘλϯΛԡ͢ͱɺϥϯμϜͰهࣄΛऔಘ͢Δػೳ͕͋ͬͨɻ >>> import requests >>>
url = "https://blogs.yahoo.co.jp/FRONT/randomblog.html" >>> r = requests.get(url) >>> redirected_url = r.url >>> print(redirected_url) https://blogs.yahoo.co.jp/yoshijiwada/49334213.html
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ 11 #ϓϩϑΟʔϧͷੑผΛऔಘ ΫϥεʮVTFSDBSE@@EFTDʯͷλάʹੑผใ͕͋ͬͨ <dd class="usercard__desc">女性 / 非公開</dd> soup
= BeautifulSoup(blogHtml,"html5lib") genderText = soup.find(class_="usercard__desc").string gender = -1 if genderText.find("男性")!=-1: gender = 0 elif genderText.find("女性")!=-1: gender = 1 CMPHIUNM DPMMFDU@BDDPVOUQZ
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ 12 $ΞΧϯτ໊ͷநग़ ϒϩά63-͔Βਖ਼نදݱΛͬͯΞΧϯτ໊Λநग़͢Δ >>> import re >>> blogUrl
= "https://blogs.yahoo.co.jp/iwainori/37230216.html" >>> account = re.sub(r"(https://blogs.yahoo.co.jp)/(¥w+)/(¥d+.html)",r"¥2",blogUrl) >>> print(account) iwainori
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ 13 %ΞΧϯτ໊ΛͬͯɺهࣄςΩετΛநग़ ΫϥεʮFOUSZ5EʯͷλάʹϒϩάςΩετ͕͋Δ from bs4 import BeautifulSoup soup
= BeautifulSoup(html,"html5lib") contents = soup.findAll(class_ = "entryTd").text blogText = "" for content in contents: # contentから改行、半角スペース、全角スペースを取り除く content = content.replace(u"¥n","").replace(u" ","").replace(u" ","") if(len(blogText)+len(content))>5000: # 文字数が5000を超えると、記事の取得をやめる break blogText = blogText + content
:BIPPϒϩά͔ΒςΩετσʔλͷநग़ 14 σʔληοτͷ உ݅ɺঁ݅ɺจࣈ
ాΒͷख๏ͷ࣮ΛࢼΈΔ 15
ాΒͷख๏ͷ࣮ΛࢼΈΔ 16 ఏҊख๏ͷྲྀΕ 5XJUUFS͔ΒਓखͰੑผϥϕϧ͖σʔλΛநग़ ౷ܭతͳख๏Λ͍ॏཁͷߴ͍Ωʔϫʔυ ޠ Λܾఆ ΩʔϫʔυΛಛྔʹͯ͠47.Ͱֶश ਪఆਫ਼ΛධՁ͢Δ
ాΒͷख๏ͷ࣮ΛࢼΈΔ 17 ใྔج४Λ͏ ճؼੳͳͲͰɺ؍ଌσʔλ͕ϞσϧʹͲͷఔҰக͢Δ͔Λࣔ͢ج४ "*$ Ϟσϧͷ࠷େର Ϟσϧͷࣗ༝ύϥϝʔλ
ాΒͷख๏ͷ࣮ΛࢼΈΔ 18 ใྔج४Λͬͯॏཁͷߴ͍ΩʔϫʔυΛબ
·ͱΊͱࠓޙͷ༧ఆ 19 ϒϩά͔ΒσʔληοτΛऔಘͨ͠ ౷ܭͷษڧΛͯ͠ใྔΛ͔ͬ͠Γཧղ मΛॻ͖͡ΊΔ
ࢀߟจݙ <>lϚʔέοτੳͷͨΊͷ5XJUUFSߘऀϓϩϑΟʔϧਪఆख๏z ా࢙ ใॲཧֶձจࢽ 7PM /P Q <>zϥϯμϜϑΥϨετʹΑΔஶऀͷੑผਪఆ
൜ࡑऀϓϩϑΝΠϦ ϯά࣮ݱʹ͚ͨݕ౼z ࡒ ۚ໌ ใֶࣝձࢽ 7PM /P Q <>ZBIPPϒϩά͔ΒςΩετΛநग़͢ΔϓϩάϥϜ IUUQTHJUIVCDPNZPOFEBDPQBSTFZBIPPCMPH <>ʮϥϯμϜϑΥϨετʹΑΔஶऀͷੑผਪఆʯΛಡΜͩϝϞ IUUQCMPHZPOFEBDPSBOEPNGPSFTU 20