chicagomusiccompass.com.
をスクレイピングするとします。ご覧のとおり、複数のカードがあり、それぞれがイベントを表しています。では、次の項目をチェックしてみましょう:
イベントの名前は次のとおりです:
jazmin bean: the traumatic livelihood tour
それでは次の質問です: テキストからアーティストの名前を抽出するにはどうすればよいですか?
人間として、jazmin Bean がアーティストであることは「簡単に」わかります。彼らの wiki ページをチェックしてみてください。ただし、その名前を抽出するコードを記述するのは難しい場合があります。
「: より前の部分はアーティスト名でなければなりません」と考えることもできます。これは賢明だと思われますよね?この場合はうまくいきますが、次の場合はどうでしょうか:
happy hour on the patio: kathryn & chris
ここで順序が逆転します。さまざまなケースを処理するロジックを追加し続けることもできますが、すぐに、脆弱でおそらくすべてをカバーできない大量のルールが作成されることになります。
そこで、固有表現認識 (NER) モデルが役立ちます。これらはオープンソースであり、テキストから名前を抽出するのに役立ちます。すべてのケースを検出できるわけではありませんが、ほとんどの場合、必要な情報が得られます。
このアプローチを使用すると、抽出がはるかに簡単になります。 Python の機械学習に関するコミュニティは無敵であるため、私は Python を使用します。
from gliner import GLiNER model = GLiNER.from_pretrained("urchade/gliner_base") text = "jazmin bean: the traumatic livelihood tour" labels = ["person", "bands", "projects"] entities = model.predict_entities(text, labels) for entity in entities: print(entity["text"], "=>", entity["label"])
出力を生成します:
jazmin bean => person
それでは、他のケースを見てみましょう:
happy hour on the patio: kathryn & chris
出力:
kathryn => person chris => person
ソース-GLiNER
すごいですよね?名前を抽出するための面倒なロジックはもう必要ありません。モデルを使用するだけです。もちろん、考えられるすべてのケースをカバーしているわけではありませんが、私のプロジェクトでは、このレベルの柔軟性が問題なく機能します。より正確な精度が必要な場合は、いつでも次のことができます:
ソフトウェア開発者として、機械学習分野のツールを常に最新の状態に保つことを強くお勧めします。単純なプログラミングとロジックだけですべてを解決できるわけではありません。一部の課題には、モデルと統計を使用する方がうまく対処できます。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3