機械学習によるWebページからの情報抽出
質問
私は Web ページから特定の種類の情報を抽出したい。 をPythonで作りたいと思います。例えば、郵便の住所です。何千もの形式がありますが、それでも何とか認識できます。たくさんの形式があるので、おそらく 正規表現 のようなものであっても、あるいは 文法 を使用するようにし パーサジェネレータ を使用します。
というわけで、私が考えるに、この方法は 機械学習 . 機械学習がうまくいけば、データのサンプルを作って、「こういう結果になるはずだ」ということを教えて、そこから「こういう結果になるはずだ」ということを自分で学習することができるようになります。これが、私が知っている機械学習のすべてです。もしかしたら、私はいくつかの 自然言語 処理も使えるかもしれませんが、すべてのライブラリはほとんど英語で動作し、私はチェコ語のためにこれを必要とするので、おそらくあまりありません。
質問です。
- この問題は機械学習で簡単に解決できますか?良い方法なのでしょうか?
- はあるのでしょうか? シンプル の例はありますか?私は機械学習の初心者で、始めるには実用的なものが必要です。私の問題に近いほどよく、シンプルなほどよいです。
- 機械学習のためのPythonライブラリはたくさんあります。どれが私の問題に最も適したものでしょうか?
- そのようなライブラリの多くは、科学的な環境から来ているため、あまり使いやすいドキュメントを持っていません。ギャップを埋める、つまり機械学習について全く何も知らない初心者に焦点を当てた良いソース(本、記事、クイックスタート)はありますか?どのドキュメントを開いても、次のような理解できない用語で始まっています。 ネットワーク , 分類 , データセット など。
更新しました。
みなさんがおっしゃるように、私がウェブから得ようとしているデータの一部を示すべきですが、ここではその例を示します。私は映画館に興味があります。 ショータイム . 彼らはこのように見える(3つ)。
<div class="Datum" rel="d_0">27. června – středa, 20.00
</div><input class="Datum_cas" id="2012-06-27" readonly=""><a href="index.php?den=0" rel="0" class="Nazev">Zahájení letního kina
</a><div style="display: block;" class="ajax_box d-0">
<span class="ajax_box Orig_nazev">zábava • hudba • film • letní bar
</span>
<span class="Tech_info">Svět podle Fagi
</span>
<span class="Popis">Facebooková komiksová Fagi v podání divadla DNO. Divoké písně, co nezařadíte, ale slušně si na ně zařádíte. Slovní smyčky, co se na nich jde oběsit. Kabaret, improvizace, písně, humor, zběsilost i v srdci.<br>Koncert Tres Quatros Kvintet. Instrumentální muzika s pevným funkovým groovem, jazzovými standardy a neodmyslitelnými improvizacemi.
</span>
<input class="Datum_cas" id="ajax_0" type="text">
</div>
<div class="Datum" rel="d_1">27. června – středa, 21.30
</div><input class="Datum_cas" id="2012-06-27" readonly=""><a href="index.php?den=1" rel="1" class="Nazev">Soul Kitchen
</a><div style="display: block;" class="ajax_box d-1">
<span class="ajax_box Orig_nazev">Soul Kitchen
</span>
<span class="Tech_info">Komedie, Německo, 2009, 99 min., čes. a angl. tit.
</span>
<span class="Rezie">REŽIE: Fatih Akin
</span>
<span class="Hraji">HRAJÍ: Adam Bousdoukos, Moritz Bleibtreu, Birol Ünel, Wotan Wilke Möhring
</span>
<span class="Popis">Poslední film miláčka publika Fatiho Akina, je turbulentním vyznáním lásky multikulturnímu Hamburku. S humorem zde Akin vykresluje příběh Řeka žijícího v Německu, který z malého bufetu vytvoří originální restauraci, jež se brzy stane oblíbenou hudební scénou. "Soul Kitchen" je skvělá komedie o přátelství, lásce, rozchodu a boji o domov, který je třeba v dnešním nevypočitatelném světě chránit víc než kdykoliv předtím. Zvláštní cena poroty na festivalu v Benátkách
</span>
<input class="Datum_cas" id="ajax_1" type="text">
</div>
<div class="Datum" rel="d_2">28. června – čtvrtek, 21:30
</div><input class="Datum_cas" id="2012-06-28" readonly=""><a href="index.php?den=2" rel="2" class="Nazev">Rodina je základ státu
</a><div style="display: block;" class="ajax_box d-2">
<span class="Tech_info">Drama, Česko, 2011, 103 min.
</span>
<span class="Rezie">REŽIE: Robert Sedláček
</span>
<span class="Hraji">HRAJÍ: Igor Chmela, Eva Vrbková, Martin Finger, Monika A. Fingerová, Simona Babčáková, Jiří Vyorálek, Jan Fišar, Jan Budař, Marek Taclík, Marek Daniel
</span>
<span class="Popis">Když vám hoří půda pod nohama, není nad rodinný výlet. Bývalý učitel dějepisu, který dosáhl vysokého manažerského postu ve významném finančním ústavu, si řadu let spokojeně žije společně se svou rodinou v luxusní vile na okraji Prahy. Bezstarostný život ale netrvá věčně a na povrch začnou vyplouvat machinace s penězi klientů týkající se celého vedení banky. Libor se následně ocitá pod dohledem policejních vyšetřovatelů, kteří mu začnou tvrdě šlapat na paty. Snaží se uniknout před hrozícím vězením a oddálit osvětlení celé situace své nic netušící manželce. Rozhodne se tak pro netradiční útěk, kdy pod záminkou společné dovolené odveze celou rodinu na jižní Moravu… Rodinný výlet nebo zoufalý úprk před spravedlností? Igor Chmela, Eva Vrbková a Simona Babčáková v rodinném dramatu a neobyčejné road-movie inspirované skutečností.
</span>
あるいはこのように
<strong>POSEL 18.10.-22.10 v 18:30 </strong><br>Drama. ČR/90´. Režie: Vladimír Michálek Hrají: Matěj Hádek, Eva Leinbergerová, Jiří Vyorávek<br>Třicátník Petr miluje kolo a své vášni podřizuje celý svůj život. Neplánuje, neplatí účty, neřeší nic, co může<br>počkat do zítra. Budování společného života s přételkyní je mu proti srsti stejně jako dělat kariéru. Aby mohl jezdit na kole, raději pracuje jako poslíček. Jeho život je neřízená střela, ve které neplatí žádná pravidla. Ale problémy se na sebe na kupí a je stále těžší před nimi ujet …<br> <br>
<strong>VE STÍNU 18.10.-24.10. ve 20:30 a 20.10.-22.10. též v 16:15</strong><br>Krimi. ČR/98´. Režie: D.Vondříček Hrají: I.Trojan, S.Koch, S.Norisová, J.Štěpnička, M.Taclík<br>Kapitán Hakl (Ivan Trojan) vyšetřuje krádež v klenotnictví. Z běžné vloupačky se ale vlivem zákulisních intrik tajné policie začíná stávat politická kauza. Z nařízení Státní bezpečnosti přebírá Haklovo vyšetřování major Zenke (Sebastian Koch), policejní specialista z NDR, pod jehož vedením se vyšetřování ubírá jiným směrem, než Haklovi napovídá instinkt zkušeného kriminalisty. Na vlastní pěst pokračuje ve vyšetřování. Může jediný spravedlivý obstát v boji s dobře propojenou sítí komunistické policie? Protivník je silný a Hakl se brzy přesvědčuje, že věřit nelze nikomu a ničemu. Každý má svůj stín minulosti, své slabé místo, které dokáže z obětí udělat viníky a z viníků hrdiny. <br><br>
<strong>ASTERIX A OBELIX VE SLUŽBÁCH JEJÍHO VELIČENSTVA ve 3D 20.10.-21.10. ve 13:45 </strong><br>Dobrodružná fantazy. Fr./124´. ČESKÝ DABING. Režie: Laurent Tirard<br>Hrají: Gérard Depardieu, Edouard Baer, Fabrice Luchini<br>Pod vedením Julia Caesara napadly proslulé římské legie Británii. Jedné malé vesničce se však daří statečně odolávat, ale každým dnem je slabší a slabší. Britská královna proto vyslala svého věrného důstojníka Anticlimaxe, aby vyhledal pomoc u Galů v druhé malinké vesničce ve Francii vyhlášené svým důmyslným bojem proti Římanům… Když Anticlimax popsal zoufalou situaci svých lidí, Galové mu darovali barel svého kouzelného lektvaru a Astérix a Obélix jsou pověřeni doprovodit ho domů. Jakmile dorazí do Británie, Anticlimax jim představí místní zvyky ve vší parádě a všichni to pořádně roztočí! Vytočený Caesar se však rozhodne naverbovat Normanďany, hrůzu nahánějící bojovníky Severu, aby jednou provždy skoncovali s Brity. <br><br>
あるいは、これに似たようなものでもかまいません。HTMLマークアップに特別なルールがない、順序に特別なルールがない、など。
どのように解決するのですか?
まず、あなたのタスクは 情報抽出 の領域に入ります。このタスクには、主に2つのレベルの複雑さがあります。
- 与えられた html ページまたは固定テンプレートを持つ Web サイトから抽出する。 (Amazonのような)。この場合、最良の方法は、ページの HTML コードを調べて、対応する XPath または DOM セレクタを作成して を見て、対応する XPath や DOM セレクタを作成することです。 正しい情報を得ることができます。この方法の欠点は、以下の通りです。 この方法の欠点は、新しい Web サイトに対して一般化できないことです。 この方法の欠点は、新しい Web サイトに対して一般化できないことです。
- 同じ情報を抽出するモデルを作成する 1つのドメイン内の多くのウェブサイトから同じ情報を抽出するモデルを作成する。 ウェブデザイナーが対応する属性を提示する方法には、何らかの固有の規則性があるという前提で のような対応する属性を提示する方法には、何らかの固有の規則性があると仮定する)。この場合、いくつかの特徴を作成する必要があります(MLアプローチを使用し、IEアルゴリズムにページのコンテンツを理解させるため)。最も一般的な特徴は以下の通りです。DOMパス、抽出される値(属性)のフォーマット、レイアウト(太字、斜体など)、周囲の文脈語などです。いくつかの値にラベルを付ける(ある種の妥当な品質で行うには、ドメインにもよるが少なくとも100〜300ページが必要である)。そして、ラベル付けされたページでモデルを学習する。また、教師無しでIEを行う方法もあります(ページ間の情報の規則性を利用します)。この場合、あなたやあなたのアルゴリズムは、(ラベル付けをせずに)ページ間で繰り返されるパターンを見つけ、最も頻度の高いものを有効なものとして考慮しようとします。
全体として最も困難な部分は、DOM ツリーを扱うことと、正しい特徴を生成することでしょう。また、正しい方法でのデータのラベル付けは、退屈な作業です。MLモデルについては、以下を参照してください。 CRF, 2DCRF, 半マルコフCRF .
そして最後に、これは一般的なケースで、IE研究の最先端であり、数晩でできるようなハックではありません。
p.s. また、私はNLTKはあまり役に立たないと思います - それはNLPであり、Web-IEライブラリではありません。
関連
-
[解決済み] Pythonでファイル名から拡張子を抽出する
-
[解決済み] Python 3 で Web からファイルをダウンロードする
-
[解決済み】ローカルマシンやWebリソースから、jupyter notebookに画像や絵を埋め込むには?
-
[解決済み] PythonでのAWS Lambdaのインポートモジュールエラー
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] PythonでSVGからPNGに変換する
-
[解決済み] Django のテストデータベースをメモリ上だけで動作させるには?
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] データクラスとtyping.NamedTupleの主な使用例
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 文字列から使える番地、市区町村、郵便番号の解析【非公開
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] 文字列から先頭と末尾のスペースを削除するには?
-
[解決済み] ファブリック経由でデプロイユーザとしてvirtualenvを有効化する
-
[解決済み] 文字列のリストを内容に基づいてフィルタリングする
-
[解決済み] tensorflowのCPUのみのインストールでダイナミックライブラリ 'cudart64_101.dll' を読み込めなかった
-
[解決済み] djangoフレームワークでフォームフィールドから値を取得するには?
-
[解決済み] if 節の終了方法