Nagy léptékű egyéni természetes nyelvi feldolgozás

Azure Computer Vision
Azure Data Lake Storage
Azure Databricks
Azure HDInsight
Azure Synapse Analytics

Megoldási ötletek

Ez a cikk egy megoldási ötlet. Ha azt szeretné, hogy további információkkal bővítsük a tartalmat, például a lehetséges használati eseteket, alternatív szolgáltatásokat, megvalósítási szempontokat vagy díjszabási útmutatást, a GitHub visszajelzésével tudassa velünk.

Egyéni természetes nyelvi feldolgozási (NLP) megoldás implementálása az Azure-ban. A Spark NLP-t olyan feladatokhoz használhatja, mint a témakör- és hangulatfelismerés és -elemzés.

Az Apache®, az Apache Spark és a láng emblémája az Apache Software Foundation bejegyzett védjegyei vagy védjegyei a Egyesült Államok és/vagy más országokban. Az Apache Software Foundation nem támogatja ezeket a jeleket.

Felépítés

Diagram that shows the flow of data through an N L P pipeline. Stages include ingesting, storing, processing, and serving.

Töltse le az architektúra Visio-fájlját.

Munkafolyamat

  1. Az Azure Event Hubs, az Azure Data Factory vagy mindkét szolgáltatás dokumentumokat vagy strukturálatlan szöveges adatokat fogad.
  2. Az Event Hubs és a Data Factory fájlformátumban tárolja az adatokat az Azure Data Lake Storage-ban. Javasoljuk, hogy olyan címtárstruktúrát állítson be, amely megfelel az üzleti követelményeknek.
  3. Az Azure Computer Vision API optikai karakterfelismerési (OCR) funkciójával használja fel az adatokat. Az API ezután a bronz rétegbe írja az adatokat. Ez a használati platform egy lakehouse-architektúrát használ.
  4. A bronz rétegben a Spark NLP különböző funkciói előre feldolgozják a szöveget. Ilyen például a felosztás, a helyesírás javítása, a tisztítás és a nyelvhelyesség megértése. Javasoljuk, hogy futtassa a dokumentumbesorolást a bronz rétegben, majd írja az eredményeket az ezüst rétegbe.
  5. Az ezüst rétegben a fejlett Spark NLP-funkciók olyan dokumentumelemzési feladatokat hajtanak végre, mint a nevesített entitásfelismerés, az összegzés és az információlekérés. Egyes architektúrákban az eredmény az aranyrétegre van írva.
  6. Az aranyrétegben a Spark NLP különböző nyelvi vizuális elemzéseket futtat a szöveges adatokon. Ezek az elemzések betekintést nyújtanak a nyelvi függőségekbe, és segítenek a NER-címkék vizualizációjában.
  7. A felhasználók adatkeretként kérdezik le az aranyréteg szöveges adatait, és megtekinthetik az eredményeket a Power BI-ban vagy a webalkalmazásokban.

A feldolgozási lépések során az Azure Databricks, az Azure Synapse Analytics és az Azure HDInsight a Spark NLP használatával biztosítja az NLP-funkciókat.

Összetevők

  • A Data Lake Storage egy Hadoop-kompatibilis fájlrendszer, amely integrált hierarchikus névtérrel, valamint az Azure Blob Storage nagy léptékű és gazdaságos használatával rendelkezik.
  • Az Azure Synapse Analytics adatraktárak és big data rendszerek elemzési szolgáltatása.
  • Az Azure Databricks egy olyan elemzési szolgáltatás a big data-hez, amely könnyen használható, megkönnyíti az együttműködést, és Apache Sparkon alapul. Az Azure Databricks adatelemzéshez és adatfeldolgozáshoz készült.
  • Az Event Hubs betölti az ügyfélalkalmazások által létrehozott adatfolyamokat. Az Event Hubs tárolja a streamelési adatokat, és megőrzi a fogadott események sorrendjét. A felhasználók csatlakozhatnak a központi végpontokhoz az üzenetek feldolgozásra való lekéréséhez. Az Event Hubs integrálható a Data Lake Storage-tal, ahogy ez a megoldás is mutatja.
  • Az Azure HDInsight egy felügyelt, teljes spektrumú, nyílt forráskódú elemzési szolgáltatás a felhőben nagyvállalatok számára. Nyílt forráskódú keretrendszereket használhat az Azure HDInsighttal, például Hadoop, Apache Spark, Apache Hive, LLAP, Apache Kafka, Apache Storm és R.
  • A Data Factory automatikusan áthelyezi az adatokat különböző biztonsági szintű tárfiókok között a feladatok elkülönítése érdekében.
  • A Computer Vision szövegfelismerő API-kat használ a képek szövegének felismeréséhez és az információk kinyeréséhez. A Read API a legújabb felismerési modelleket használja, és nagy, szövegigényes dokumentumokhoz és zajos képekhez van optimalizálva. Az OCR API nem nagy dokumentumokhoz van optimalizálva, de több nyelvet támogat, mint a Read API. Ez a megoldás OCR használatával készít adatokat hOCR formátumban.

Forgatókönyv részletei

A természetes nyelvi feldolgozásnak (NLP) számos felhasználási módja van: hangulatelemzés, témakörészlelés, nyelvészlelés, kulcskifejezés-kinyerés és dokumentumkategorizálás.

Az Apache Spark egy párhuzamos feldolgozási keretrendszer, amely támogatja a memórián belüli feldolgozást a big data elemzési alkalmazások, például az NLP teljesítményének növelése érdekében. Az Azure Synapse Analytics, az Azure HDInsight és az Azure Databricks hozzáférést biztosít a Sparkhoz, és kihasználja feldolgozási teljesítményét.

A testreszabott NLP-számítási feladatokhoz a Spark NLP nyílt forráskódú kódtár hatékony keretrendszerként szolgál nagy mennyiségű szöveg feldolgozásához. Ez a cikk egy megoldást mutat be az Azure-beli nagy léptékű egyéni NLP-khez. A megoldás Spark NLP-funkciókkal dolgozza fel és elemzi a szöveget. A Spark NLP-vel kapcsolatos további információkért tekintse meg a Spark NLP funkcióit és folyamatait a cikk későbbi részében.

Lehetséges használati esetek

  • Dokumentumbesorolás: A Spark NLP számos lehetőséget kínál a szövegbesoroláshoz:

    • Szövegelőfeldolgozás a Spark NLP-ben és a Spark ML-n alapuló gépi tanulási algoritmusokban
    • Szövegelőfeldolgozás és szóbeágyazás Spark NLP-ben és gépi tanulási algoritmusokban, például GloVe, BERT és ELMo
    • Szövegelőfeldolgozás és mondatbeágyazás Spark NLP- és gépi tanulási algoritmusokban és modellekben, például az Univerzális mondatkódolóban
    • Szövegelőfeldolgozás és -besorolás a Spark NLP-ben, amely az ClassifierDL annotatort használja, és a TensorFlow-on alapul
  • Néventitások kinyerése (NER):A Spark NLP-ben néhány sornyi kóddal betanítást végezhet egy BERT-et használó NER-modellen, és a legkorszerűbb pontosságot érheti el. A NER az információkinyerés altevékenysége. A NER strukturálatlan szövegben megkeresi az elnevezett entitásokat, és előre definiált kategóriákba sorolja őket, például személyneveket, szervezeteket, helyszíneket, orvosi kódokat, időkifejezéseket, mennyiségeket, pénzügyi értékeket és százalékokat. A Spark NLP egy korszerű NER-modellt használ a BERT használatával. A modellt egy korábbi NER-modell, kétirányú LSTM-CNN ihlette. Ez a korábbi modell egy új neurális hálózati architektúrát használ, amely automatikusan észleli a szószintű és karakterszintű funkciókat. Ebből a célból a modell hibrid kétirányú LSTM- és CNN-architektúrát használ, így szükségtelenné teszi a legtöbb funkciótervezést.

  • Hangulat- és érzelemfelismerés: A Spark NLP automatikusan képes észlelni a nyelv pozitív, negatív és semleges aspektusait.

  • Beszéd része (POS): Ez a funkció egy nyelvtani címkét rendel a bemeneti szöveg minden jogkivonatához.

  • Mondatészlelés (SD):: Az SD egy általános célú neurális hálózati modellen alapul a mondathatárészleléshez, amely a szövegen belüli mondatokat azonosítja. Sok NLP-tevékenység egy mondatot vesz fel bemeneti egységként. Ilyen feladatok például a POS-címkézés, a függőség elemzése, az elnevezett entitásfelismerés és a gépi fordítás.

Spark NLP-funkciók és folyamatok

A Spark NLP Python-, Java- és Scala-kódtárakat biztosít, amelyek olyan hagyományos NLP-kódtárak teljes funkcionalitását kínálják, mint a spaCy, az NLTK, a Stanford CoreNLP és az Open NLP. A Spark NLP olyan funkciókat is kínál, mint a helyesírás-ellenőrzés, a hangulatelemzés és a dokumentumbesorolás. A Spark NLP a legmodernebb pontosság, sebesség és méretezhetőség biztosításával javítja a korábbi erőfeszítéseket.

A Spark NLP messze a leggyorsabb nyílt forráskódú NLP-kódtár. A legutóbbi nyilvános teljesítménymutatók szerint a Spark NLP 38 és 80-szor gyorsabb, mint a SpaCy, és hasonló pontosságot mutat az egyéni modellek betanításához. A Spark NLP az egyetlen nyílt forráskódú kódtár, amely elosztott Spark-fürtöt használhat. A Spark NLP a Spark ML natív bővítménye, amely közvetlenül adatkereteken működik. Ennek eredményeképpen a fürt gyorsulása a teljesítménynövekedés egy másik nagyságrendjét eredményezi. Mivel minden Spark NLP-folyamat Egy Spark ML-folyamat, a Spark NLP kiválóan alkalmas egységes NLP- és gépi tanulási folyamatok, például dokumentumbesorolás, kockázat-előrejelzés és ajánlófolyamatok létrehozására.

A Kiváló teljesítmény mellett a Spark NLP a legmodernebb pontosságot is biztosítja egyre több NLP-feladathoz. A Spark NLP csapata rendszeresen olvassa a legfrissebb releváns tanulmányokat, és a legpontosabb modelleket állítja elő.

Egy NLP-folyamat végrehajtási sorrendjében a Spark NLP ugyanazt a fejlesztési koncepciót követi, mint a hagyományos Spark ML-gépi tanulási modellek. A Spark NLP azonban NLP-technikákat alkalmaz. Az alábbi ábra egy Spark NLP-folyamat alapvető összetevőit mutatja be.

Diagram that shows N L P pipeline stages, such as document assembly, sentence detection, tokenization, normalization, and word embedding.

Közreműködők

Ezt a cikket a Microsoft tartja karban. Eredetileg a következő közreműködők írták.

Fő szerző:

Következő lépések