SEO のための Python 教師なし単語抽出で単語をすばやく正確に分割する方法

SEO のための Python 教師なし単語抽出で単語をすばやく正確に分割する方法

単語をすばやく正確に分割する方法は、SEO のためのタグ集約と情報関連付けを抽出するのに役立ちます。

現在、多くの単語分割ツールはユニグラム単語分割に基づいており、語彙ライブラリの支援が必要です。

Google Blackboard の第 1 章の学習を通じて、単語の分割に統計モデルを使用する方法を学びました。

この方法は3次元を考慮している

凝集性: 2 つの単語が連続して出現する確率は、互いに独立していません。たとえば、「上」(shang)の出現確率は1×10^-5、「床」(bed)の出現確率は1×10^-10です。この2つの単語の結束度が低い場合、「上床」(shang bed)の出現確率は1×10^-15に近くなるはずです。しかし、実際には、「上床」(shang bed)の出現確率は1×10^-11であり、これはそれらの独立した確率の積よりもはるかに高いです。つまり、「getting laid」を単語として考えることができます。

左隣文字のエントロピー:区切られた単語の左側の文字の情報量。例えば、「巴掌」は基本的に「打掌」「一掌」「拍掌」にしか使えません。逆に、「过」という単語の前には「走过」「跑过」「爬过」「打过」「击过」「打过」「迷过」「睡过」「死过」「飞过」などが付くことがあり、情報エントロピーが非常に高くなります。

右隣接単語セットのエントロピー: 分離された単語の右側にある単語の情報量、上記と同じ

以下は Python で実装されたデモです (出典: http://www.webinfoextract.com/forum.php?mod=viewthread&tid=20) ?
1 2 3 4 5 6 7 8 9 #!/bin/sh python . /splitstr .py > substr.freq python . .py /cntfreq .py > word.freq python . /findwords .py > result sort -t " " -r -n -k 2 result > result. sort
splitstr.py は、10 文字未満の部分文字列を分割し、単語の頻度、左隣接単語セットのエントロピー、右隣接単語セットのエントロピーを計算し、10 回以上出現する部分文字列を出力します。 ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 import math def compute_entropy(word_list): wdict = {} tot_cnt = 0 for w in word_list: if w not in wdict: wdict[w] = 0 wdict[w] + = 1 tot_cnt + = 1 ent = 0.0 for k,v in wdict.items(): p = 1.0 * v / tot_cnt ent - = p * math.log(p) return ent def count_substr_freq(): fp = open ( "./video.corpus" ) str_freq = {} str_left_word = {} str_right_word = {} tot_cnt = 0 for line in fp: line = line.strip( '\n' ) st = line.decode( 'utf-8' ) l = len (st) for i in range (l): for j in range (i + 1 ,l): if j - i 0 : left_word = st[i - 1 ] else : left_word = '^' j < l - 1 if : right_word = st[j + 1 ] else : right_word = '%' str_left_word[w].append(left_word) str_right_word[w].append(right_word) tot_cnt + = 1 str_freq.items(): for k,v in if v > = 10 : left_ent = compute_entropy(str_left_word[k]) right_ent = compute_entropy(str_right_word[k]) "%s\t%f\t%f\t%f" print : % (k,v * 1.0 / tot_cnt,left_ent,right_ent) __name__ = "__main__" if = count_substr_freq()
cntfreq.sh では、各単語の頻度をカウントします: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 def count_freq(): word_freq = {} fp = open ( "./substr.freq" ) tot_cnt = 0.0 for line in fp: line = line.split( '\t' ) if len (line) < 2 : continue st = line[ 0 ].decode( 'utf-8' ) freq = float (line[ 1 ]) for w in st: if w not in word_freq: word_freq[w] = 0.0 word_freq[w] + = freq tot_cnt + = freq while True : try : x,y = word_freq.popitem() if x: freq = y * 1.0 / tot_cnt print "%s\t%f" % (x.encode( 'utf-8' ),freq) else : break except : break if __name__ = "__main__" = : count_freq()
findwords.py は、左と右の隣接単語セットの凝集度とエントロピーが高い文字列を出力します: ?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 def load_dict(filename): dict = {} fp = open : (filename) for line in fp: line = line.strip( '\n' ) item = line.split( '\t' ) if len (item) = 2 = dict [item[ 0 ]] = float (item[ 1 ]) return dict def compute_prob( str , dict ): p = 1.0 for w in str : w = w.encode( 'utf-8' ) if w in dict : p * = dict [w] return p def is_ascii(s): return all ( ord (c) < 128 for c in s) def find_compact_substr( dict ): fp = open ( "./substr.freq" ) str_freq = {} for line in fp: line = line.decode( 'utf-8' ) items = line.split( '\t' ) len (items) < 4 if : continue substr = items[ 0 ] freq = float (items[ 1 ]) left_ent = float (items[ 2 ]) right_ent = float (items[ 3 ]) p = compute_prob(substr, dict ) freq_ratio = freq / p freq_ratio > 5.0 if left_ent > 2.5 and right_ent > 2.5 and len (substr) > = 2 and and is_ascii(substr): print "%s\t%f" % (substr.encode( 'utf-8' not ),freq) __name__ = "__main__" if = dict : = load_dict( './word.freq' ) find_compact_substr( dict )
30,000 本のビデオのタイトルから抽出された最も頻繁な 50 個の単語は次のとおりです
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50视频0.000237轴承0.000184北京0.000150中国0.000134高清0.000109搞笑0.000101新闻0.000100上海0.000100美女0.000092演唱0.000085音乐0.000082 —— 0.000082第二0.000080少女0.000078最新0.000074广场0.000070世界0.000070现场0.000066娱乐0.000066大学0.000064公司0.000064舞蹈0.000063电视0.000063教学0.000060我们0.000060国语0.000059经典0.000056字幕0.000055宣传0.000053钢管0.000051游戏0.000050电影0.000049演唱会0.000046日本0.000045小学0.000045快乐0.000044超级0.000043第三0.000042宝宝0.000042学生0.000042广告0.000041培训0.000041视频0.000040美国0.000040爱情0.000039老师0.000038动画0.000038教程0.000037广州0.000037学院0.000035

元のタイトル: Python の教師なし単語抽出 SEO で単語をすばやく正確に分割する方法

キーワード: Python、教師なし、教師ありサンプリング、SEO、方法、迅速、正しく分割、ウェブマスター、ウェブサイト、ウェブサイトのプロモーション、収益化

<<:  ウェブサイトのデザイン分析:ユーザーの本来の習慣に基づいたデザイン

>>:  ウェブサイトのランキングを着実に上げるために合理的なウェブサイトの改訂を行う方法

推薦する

軽視できないフォーラム形式の外部リンク

外部リンクは、ウェブサイトのインバウンド リンクです。インバウンド リンクはウェブサイトにとって非常...

突然頭に浮かんだ 2 つの最適化のアイデアについてお話ししたいと思います。

鍵は飛び、言葉は発せられる。いつ雲が晴れて太陽が顔を出すのだろうか?心は水のように、夜のように静かで...

教育・研修ウェブサイト運営ガイド:コンテンツ戦略

いわゆる教育・研修ウェブサイトとは、教育情報や研修コース情報の提供を主な内容とするウェブサイトを指し...

Zhubajie CEO 朱明月氏:プラットフォームは最も難しいビジネス

2014年5月25日、IDG Capitalが全額出資し、創業邦が共催した第11回IDGキャンパス起...

Golang 分散マーケットプッシュのパフォーマンスボトルネックを最適化する

[[409249]]この記事はWeChatの公開アカウント「Coder's Peach Bl...

ultravps-20% オフ/4 コンピュータ ルーム/KVM/2.8 ユーロ/1g メモリ/30g ハード ディスク/1T トラフィック

ベテラン ホスティング プロバイダー ultravps.eu は、psychz.net でホストされ...

初心者が外部リンクの構築、公開、ターゲット設定の3つのステップを紹介

外部リンク構築は、ウェブサイトの成功の重要な要素です。ウェブサイトの品質と検索ランキングは、外部リン...

Ultravps シアトル データセンター 1G メモリ/KVM シンプル評価

ultravps.com は fiberhub のサイトであることは、おそらく多くの人が知っているで...

Oracle Marketing Cloud が Royal FrieslandCampina の精密マーケティングの成功を支援

消費の高度化と新小売時代の到来により、中国は世界第2位の乳幼児消費市場となった。乳児用調製粉乳業界に...

Google、人工的なランキングブーストに対抗するためウェブサイトランキングアルゴリズムを調整

北京時間5月17​​日、海外メディアの報道によると、Googleは最近、検索エンジンのウェブサイトラ...

zji: Huawei香港回線独立サーバー30%割引、月額450元から、デュアル回線回線もオプション

Zjiは今年初め、Huaweiの香港ライン向け独立サーバーの特別プロモーションを開始しました。Hua...

「The Brain」のロビン・リー:画像検索は将来の発展のトレンド

ウェブマスターの皆さんは、「The Brain」の第 1 話に Baidu の CEO である Ro...

新しいドメイン名と新しい Web サイトが理由もなく降格される問題を解決するにはどうすればよいですか?

月収10万元の起業の夢を実現するミニプログラム起業支援プラン降格はウェブマスターにとって恐ろしく、考...

IBMとPitney Bowesがハイブリッドクラウド位置情報サービスで提携

IBM (NYSE: IBM) と Pitney Bowes (NYSE: PBI) は本日、コード...

#BlackFriday# itldc: 20 年の歴史を持つブランド、11 のデータセンターの VPS が 50% オフ、年間 16 ユーロから、トラフィック制限なし

20年以上運営している老舗企業です。今年のブラックフライデーには、11のデータセンターのVPSを50...