1. ホーム
  2. python

機械学習によるWebページからの情報抽出

2023-08-21 12:29:26

質問

私は Web ページから特定の種類の情報を抽出したい。 をPythonで作りたいと思います。例えば、郵便の住所です。何千もの形式がありますが、それでも何とか認識できます。たくさんの形式があるので、おそらく 正規表現 のようなものであっても、あるいは 文法 を使用するようにし パーサジェネレータ を使用します。

というわけで、私が考えるに、この方法は 機械学習 . 機械学習がうまくいけば、データのサンプルを作って、「こういう結果になるはずだ」ということを教えて、そこから「こういう結果になるはずだ」ということを自分で学習することができるようになります。これが、私が知っている機械学習のすべてです。もしかしたら、私はいくつかの 自然言語 処理も使えるかもしれませんが、すべてのライブラリはほとんど英語で動作し、私はチェコ語のためにこれを必要とするので、おそらくあまりありません。

質問です。

  1. この問題は機械学習で簡単に解決できますか?良い方法なのでしょうか?
  2. はあるのでしょうか? シンプル の例はありますか?私は機械学習の初心者で、始めるには実用的なものが必要です。私の問題に近いほどよく、シンプルなほどよいです。
  3. 機械学習のためのPythonライブラリはたくさんあります。どれが私の問題に最も適したものでしょうか?
  4. そのようなライブラリの多くは、科学的な環境から来ているため、あまり使いやすいドキュメントを持っていません。ギャップを埋める、つまり機械学習について全く何も知らない初心者に焦点を当てた良いソース(本、記事、クイックスタート)はありますか?どのドキュメントを開いても、次のような理解できない用語で始まっています。 ネットワーク , 分類 , データセット など。

更新しました。

みなさんがおっしゃるように、私がウェブから得ようとしているデータの一部を示すべきですが、ここではその例を示します。私は映画館に興味があります。 ショータイム . 彼らはこのように見える(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&nbsp;&nbsp; 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&nbsp; 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?&nbsp; 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&nbsp; ve 3D&nbsp;&nbsp;&nbsp; 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ライブラリではありません。