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
Töltse le az architektúra Visio-fájlját.
Munkafolyamat
- Az Azure Event Hubs, az Azure Data Factory vagy mindkét szolgáltatás dokumentumokat vagy strukturálatlan szöveges adatokat fogad.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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ő:
- Moritz Steller | Vezető felhőmegoldás-tervező
Következő lépések
A Spark NLP dokumentációja:
Azure-összetevők:
Kapcsolódó erőforrások
- Természetes nyelvi feldolgozási technológia
- Mesterséges intelligenciák bővítése képekkel és természetes nyelvi feldolgozással az Azure Cognitive Searchben
- Hírcsatornák elemzése közel valós idejű elemzéssel kép- és természetes nyelvi feldolgozással
- Tartalomcímkék ajánlása az NLP használatával mély tanulással