Përpunimi i gjuhës natyrore
Përpunimi i gjuhës natyrore (NLP) është një nënfushë ndërdisiplinore e gjuhësisë, shkencave kompjuterike dhe inteligjencës artificiale që ka të bëjë me ndërveprimet midis kompjuterëve dhe gjuhës njerëzore, në veçanti se si të programohen kompjuterët për të përpunuar dhe për të analizuar sasi të mëdha të të dhënave të gjuhës natyrore. Qëllimi është që një kompjuter të jetë i aftë ta "kuptojë" përmbajtjen e dokumenteve, duke përfshirë nuancat kontekstuale të gjuhës brenda tyre. Teknologjia më pas mund t'i nxjerrë me saktësi informacionin dhe njohuritë e përfshira në dokumente, si dhe të kategorizojë dhe të organizojë vetë dokumentet.
Sfidat në përpunimin e gjuhës natyrore shpesh përfshijnë njohjen e të folurit, të kuptuarit e gjuhës natyrore dhe prodhimin e gjuhës natyrore.
Historia
[Redakto | Redakto nëpërmjet kodit]Përpunimi i gjuhës natyrore i ka rrënjët në vitet 1950-ta. Tashmë në vitin 1950, Alan Turing botoi një artikull të titulluar "Makineria Kompjuterike dhe Inteligjenca", i cili propozonte atë që tani quhet testi i Turingut si një kriter i inteligjencës, megjithëse në atë kohë nuk artikulohej si një problem i ndarë nga inteligjenca artificiale. Testi i propozuar përfshin një detyrë që përfshin interpretimin dhe gjenerimin e automatizuar të gjuhës natyrore.
NLP-ja simbolike (1950 - fillimi i viteve 1990)
[Redakto | Redakto nëpërmjet kodit]Premisa e NLP-së simbolike përmblidhet mirë nga eksperimenti i dhomës kineze i John Searle-t: Duke pasur parasysh një koleksion rregullash (p.sh., një libër frazash kineze, me pyetje dhe përgjigje që përputhen), kompjuteri imiton të kuptuarit e gjuhës natyrore (ose detyra të tjera të NLP-së) duke zbatuar këto rregulla në të dhënat, me të cilat përballet.
- Vitet 1950-ta: Eksperimenti i Georgetown më 1954 përfshinte përkthimin plotësisht automatik të më shumë se gjashtëdhjetë fjalive ruse në anglisht. Autorët pohuan se brenda tri ose pesë viteve, përkthimi me makinë do të ishte një problem i zgjidhur.[1] Megjithatë, përparimi i vërtetë ishte shumë më i ngadalshëm dhe pas raportit të ALPAC më 1966, i cili zbuloi se kërkimi dhjetëvjeçar kishte dështuar të përmbushte pritshmëritë, fondet për përkthimin me makinë u reduktuan në mënyrë dramatike. Pak kërkime të mëtejshme në përkthimin me makinë u kryen në Amerikë (megjithëse disa kërkime vazhduan gjetkë, si në Japoni dhe në Evropë[2]) deri në fund të viteve 1980 kur u zhvilluan sistemet e para statistikore të përkthimit makinerik.
- Vitet 1960-ta: Disa sisteme veçanërisht të suksesshme të përpunimit të gjuhës natyrore, të zhvilluara në vitet 1960 ishin SHRDLU, një sistem gjuhësor natyror që punon në "botë blloqesh" të kufizuara me fjalorë të kufizuar dhe ELIZA, një simulim i një psikoterapisti Rogerian, shkruar nga Joseph Weizenbaum midis 1964 dhe 1966. Duke mos përdorur pothuajse asnjë informacion rreth mendimit apo emocionit njerëzor, ELIZA ndonjëherë ofronte një ndërveprim befasues të ngjashëm me njeriun. Kur "pacienti" tejkaloi bazën shumë të vogël të njohurive, ELIZA mund të japë një përgjigje të përgjithshme, për shembull, duke iu përgjigjur "Më dhemb koka" me "Pse thua se të dhemb koka?" .
- Vitet 1970-ta: Gjatë viteve 1970, shumë programues filluan të shkruanin "ontologji konceptuale", të cilat strukturuan informacionin e botës reale në të dhëna të kuptueshme nga kompjuteri. Shembuj janë MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan, 1976), QUALM (Lehnert, 1977), Politika (Carbonell, 1979) dhe Plot Units (Lehnert 1981). Gjatë kësaj kohe, u shkruan chatbotët e parë (p.sh. PARRY).
- Vitet 1980-ta: Vitet 1980 dhe fillimi i viteve 1990 shënojnë kulmin e metodave simbolike në NLP. Fushat e fokusit të kohës përfshinin kërkime mbi analizën e bazuar në rregulla (p.sh., zhvillimi i HPSG si një operacionalizimi llogaritës i gramatikës së përgjithshme), morfologjia (p.sh., morfologjia me dy nivele[3]), semantika (p.sh., algoritmi Lesk), referenca (p.sh., brenda Teorisë së Përqendrimit[4]) dhe fushave të tjera të të kuptuarit të gjuhës natyrore (p.sh., në Teorinë e Strukturës Retorike). Linja të tjera kërkimi u vazhduan, p.sh., zhvillimi i chatbots me Racter dhe Jabberwacky. Një zhvillim i rëndësishëm (që përfundimisht çoi në kthesën statistikore në vitet 1990) ishte rëndësia në rritje e vlerësimit sasior në këtë periudhë.[5]
NLP-ja statistikore (1990-2010)
[Redakto | Redakto nëpërmjet kodit]Deri në vitet 1980, shumica e sistemeve të përpunimit të gjuhës natyrore bazoheshin në grupe komplekse rregullash të shkruara me dorë. Megjithatë, duke filluar nga fundi i viteve 1980, pati një revolucion në përpunimin e gjuhës natyrore me futjen e algoritmeve të mësimit makinerik për përpunimin e gjuhës. Kjo ishte për shkak të rritjes së vazhdueshme të fuqisë llogaritëse dhe pakësimit gradual të dominimit të teorive çomskiane të gjuhësisë (p.sh. gramatika transformuese), bazat teorike të së cilës dekurajuan llojin e gjuhësisë së korpusit që qëndron në themel të qasjes së mësimit makinerik për përpunimin e gjuhës.[6]
- Vitet 1990-ta: Shumë nga sukseset e hershme të dukshme në metodat statistikore në NLP ndodhën në fushën e përkthimit makinerik, veçanërisht për shkak të punës në IBM Research, siç janë modelet e shtrirjes së IBM-së. Këto sisteme ishin në gjendje të përfitonin nga korpuset tekstuale shumëgjuhëshe ekzistuese që ishin prodhuar nga Parlamenti i Kanadasë dhe Bashkimi Evropian si rezultat i ligjeve që kërkonin përkthimin e të gjitha procedurave qeveritare në të gjitha gjuhët zyrtare të sistemeve përkatëse të qeverisjes. Megjithatë, shumica e sistemeve të tjera vareshin nga korpuset e zhvilluara posaçërisht për detyrat e zbatuara nga këto sisteme, gjë që ishte (dhe shpesh vazhdon të jetë) një kufizim i madh në suksesin e këtyre sistemeve. Si rezultat, një pjesë e madhe e kërkimit është bërë në metodat e të mësuarit në mënyrë më efektive nga sasi të kufizuara të dhënash.
- Vitet 2000-ta: Me rritjen e internetit, sasia në rritje e të dhënave gjuhësore të papërpunuara (të pashënuara) janë bërë të disponueshme që nga mesi i viteve 1990. Kështu, kërkimi është fokusuar gjithnjë e më shumë në algoritmet e mësimit të pambikëqyrur dhe gjysmë të mbikëqyrur. Algoritme të tilla mund të mësojnë nga të dhënat që nuk janë shënuar me dorë me përgjigjet e dëshiruara ose duke përdorur një kombinim të të dhënave të shënuara dhe jo të shënuara. Në përgjithësi, kjo detyrë është shumë më e vështirë se mësimi i mbikëqyrur dhe zakonisht prodhon rezultate më pak të sakta për një sasi të caktuar të dhënash hyrëse. Sidoqoftë, ekziston një sasi e madhe e të dhënave pa shënime në dispozicion (duke përfshirë, ndër të tjera, të gjithë përmbajtjen e World Wide Web), të cilat shpesh mund të kompensojnë rezultatet inferiore nëse algoritmi i përdorur ka një kompleksitet mjaft të ulët kohor për të qenë praktik.
NLP nervore (tani)
[Redakto | Redakto nëpërmjet kodit]Në vitet 2010-ta, metodat e mësimit të përfaqësimit dhe të mësimit të makinerive të stilit të rrjeteve nervore të thella u përhapën në përpunimin e gjuhës natyrore. Ky popullaritet ishte pjesërisht për shkak të një morie rezultatesh që tregojnë se teknika të tilla[7][8] mund të arrijnë rezultate të nivelit të lartë në shumë detyra të gjuhës natyrore, p.sh. në modelimin e gjuhës[9] dhe analizimin.[10][11] Kjo është gjithnjë e më e rëndësishme në mjekësi dhe kujdes shëndetësor, ku NLP ndihmon në analizimin e shënimeve dhe teksteve në të dhënat elektronike shëndetësore, të cilat përndryshe do të ishin të paarritshme për studim kur kërkon të përmirësojë kujdesin.[12]
Metodat: rregullat, statistikat, rrjetet nervore
[Redakto | Redakto nëpërmjet kodit]Në ditët e hershme, shumë sisteme të përpunimit të gjuhës u krijuan me metoda simbolike, dmth., kodimi me dorë i një sërë rregullash, së bashku me një kërkim fjalori:[13][14] të tilla si duke shkruar gramatika ose duke hartuar rregulla heuristike për stemimin.
Sistemet më të fundit të bazuara në algoritmet e mësimit makinerik kanë shumë përparësi ndaj rregullave të prodhuara me dorë:
- Procedurat e të mësuarit të përdorura gjatë mësimit makinerik fokusohen automatikisht në rastet më të zakonshme, ndërsa kur shkruani rregulla me dorë shpesh nuk është aspak e qartë se ku duhet të drejtohet përpjekja.
- Procedurat automatike të të mësuarit mund të përdorin algoritme të konkluzioneve statistikore për të prodhuar modele që janë të qëndrueshme për të dhëna të panjohura (p.sh. përmbajnë fjalë ose struktura që nuk janë parë më parë) dhe për të dhëna të gabuara (p.sh. me fjalë të shkruara gabim ose fjalë të hequra aksidentalisht). Në përgjithësi, trajtimi me hijeshi i këtyre të dhënave me rregulla të shkruara me dorë, ose, në përgjithësi, krijimi i sistemeve të rregullave të shkruara me dorë që marrin vendime të buta, është jashtëzakonisht i vështirë, i prirur ndaj gabimeve dhe kërkon kohë.
- Sistemet e bazuara në mësimin automatik të rregullave mund të bëhen më të sakta thjesht duke ofruar më shumë të dhëna hyrëse. Megjithatë, sistemet e bazuara në rregulla të shkruara me dorë mund të bëhen më të sakta vetëm duke rritur kompleksitetin e rregullave, që është një detyrë shumë më e vështirë. Në veçanti, ka një kufi për kompleksitetin e sistemeve të bazuara në rregulla të shkruara me dorë, përtej të cilave sistemet bëhen gjithnjë e më të pamenaxhueshme. Megjithatë, krijimi i më shumë të dhënave për të futur në sistemet e mësimit të makinerive kërkon thjesht një rritje korresponduese në numrin e orëve të punës së punës, përgjithësisht pa rritje të konsiderueshme në kompleksitetin e procesit të shënimit.
Megjithë popullaritetin e mësimit të makinerive në kërkimin NLP, metodat simbolike ende (2020) përdoren zakonisht:
- kur sasia e të dhënave të trajnimit është e pamjaftueshme për të aplikuar me sukses metodat e mësimit të makinerive, p.sh., për përkthimin makinerik të gjuhëve me burime të ulëta siç ofrohet nga sistemi Apertium,
- për parapërpunim në tubacionet NLP, p.sh., tokenizimi, ose
- për paspërpunimin dhe transformimin e prodhimit të tubacioneve NLP, p.sh., për nxjerrjen e njohurive nga analizat sintaksore.
Metodat statistikore
[Redakto | Redakto nëpërmjet kodit]Që nga i ashtuquajturi "revolucion statistikor"[15][16] në fund të viteve 1980 dhe mesi i viteve 1990, shumë kërkime për përpunimin e gjuhës natyrore janë mbështetur shumë në mësimin e makinerive. Në vend të kësaj, paradigma e mësimit të makinës kërkon përdorimin e konkluzioneve statistikore për të mësuar automatikisht rregulla të tilla përmes analizës së korpuseve të mëdha (është një grup dokumentesh, ndoshta me shënime njerëzore ose kompjuterike) të shembujve tipikë të botës reale.
Shumë klasa të ndryshme të algoritmeve të mësimit makinerik janë aplikuar në detyrat e përpunimit të gjuhës natyrore. Këto algoritme marrin si hyrje një grup të madh "karakteristikash" që gjenerohen nga të dhënat hyrëse. Megjithatë, gjithnjë e më shumë, kërkimi është fokusuar në modelet statistikore, të cilat marrin vendime të buta, probabiliste bazuar në bashkëngjitjen e peshave me vlerë reale për çdo veçori hyrëse (ngulitje me vlerë komplekse,[17] dhe rrjetet nervore në përgjithësi janë propozuar gjithashtu, për p.sh. të folurit). Modele të tilla kanë avantazhin se mund të shprehin sigurinë relative të shumë përgjigjeve të ndryshme të mundshme dhe jo vetëm të njërës, duke prodhuar rezultate më të besueshme kur një model i tillë përfshihet si një komponent i një sistemi më të madh.
Disa nga algoritmet më të hershme të mësimit të makinerive të përdorura, të tilla si pemët e vendimeve, prodhuan sisteme me rregulla të vështira if-then të ngjashme me rregullat ekzistuese të shkruara me dorë. Megjithatë, etiketimi i pjesëve të ligjëratës prezantoi përdorimin e modeleve të fshehura Markov në përpunimin e gjuhës natyrore, dhe gjithnjë e më shumë, kërkimi është fokusuar në modelet statistikore, të cilat marrin vendime të buta, probabiliste bazuar në bashkëngjitjen e peshave me vlerë reale për veçoritë që përbëjnë hyrjen në të dhëna. Modelet e gjuhës së memories, mbi të cilat mbështeten tani shumë sisteme të njohjes së të folurit janë shembuj të modeleve të tilla statistikore. Modele të tilla janë përgjithësisht më të fuqishme kur jepen të dhëna të panjohura, veçanërisht hyrje që përmban gabime (siç është shumë e zakonshme për të dhënat e botës reale) dhe prodhojnë rezultate më të besueshme kur integrohen në një sistem më të madh që përfshin nëndetyra të shumta.
Që nga kthesa nervore, metodat statistikore në kërkimin NLP janë zëvendësuar kryesisht nga rrjetet nervore. Megjithatë, ato vazhdojnë të jenë të rëndësishme për kontekstet, në të cilat kërkohet interpretueshmëria dhe transparenca statistikore.
Rrjetet nervore
[Redakto | Redakto nëpërmjet kodit]Një pengesë kryesore e metodave statistikore është se ato kërkojnë inxhinieri të hollësishme të veçorive. Që nga viti 2015,[18] fusha ka braktisur kryesisht metodat statistikore dhe është zhvendosur në rrjetet nervore për mësimin e makinerive. Teknikat e njohura përfshijnë përdorimin e ngulitjes së fjalëve për të kapur vetitë semantike të fjalëve dhe një rritje në të mësuarit nga fundi në fund të një detyre të nivelit më të lartë (p.sh., përgjigjja e pyetjeve) në vend që të mbështetet në një linjë detyrash të veçanta të ndërmjetme (p.sh. etiketimi i pjesës së të folurit dhe analizimi i varësisë). Në disa fusha, ky ndryshim ka sjellë ndryshime thelbësore në mënyrën se si janë dizajnuar sistemet NLP, të tilla që qasjet e bazuara në rrjete të thella nervore mund të shihen si një paradigmë e re e dallueshme nga përpunimi statistikor i gjuhës natyrore. Për shembull, termi përkthim i makinës nervore (NMT) thekson faktin se qasjet e bazuara në mësimin e thellë për përkthimin e makinës mësojnë drejtpërdrejt transformimet nga sekuenca në sekuencë, duke evituar nevojën për hapa të ndërmjetëm, siç janë rreshtimi i fjalëve dhe modelimi i gjuhës që u përdor në statistikat . përkthimi me makinë (SMT).
Detyrat e zakonshme të NLP-së
[Redakto | Redakto nëpërmjet kodit]Më poshtë është një listë e disa prej detyrave më të hulumtuara në përpunimin e gjuhës natyrore. Disa nga këto detyra kanë aplikacione të drejtpërdrejta në botën reale, ndërsa të tjerat më shpesh shërbejnë si nën-detyra që përdoren për të ndihmuar në zgjidhjen e detyrave më të mëdha.
Megjithëse detyrat e përpunimit të gjuhës natyrore janë të ndërthurura ngushtë, ato mund të ndahen në kategori për lehtësi. Një ndarje e trashë është dhënë më poshtë.
Përpunimi i tekstit dhe i të folurit
[Redakto | Redakto nëpërmjet kodit]- Njohja optike e karaktereve (OCR)
- Njohja e të folurit
- Segmentimi i të folurit
- Tekst në të folur[19]
- Segmentimi i fjalëve (Tokenizimi)
Analiza morfologjike
[Redakto | Redakto nëpërmjet kodit]Analiza sintaksore
[Redakto | Redakto nëpërmjet kodit]Semantika leksikore (e fjalëve individuale në kontekst)
[Redakto | Redakto nëpërmjet kodit]- Semantika leksikore
- Semantika e shpërndarjes
- Njohja e entitetit të emërtuar (NER)
- Analiza e sentimentit
- Nxjerrja e terminologjisë
- Shfaqja e kuptimit të fjalës (WSD)
- Lidhja e entitetit
Semantika relacionale (semantika e fjalive individuale)
[Redakto | Redakto nëpërmjet kodit]Diskursi (semantika përtej fjalive individuale)
[Redakto | Redakto nëpërmjet kodit]- Rezolucioni i referencës
- Analiza e diskursit
- Njohja e lidhjeve tekstuale[23]
- Segmentimi dhe njohja e temës
- Nxjerrja e argumenteve[24][25]
Shiko edhe
[Redakto | Redakto nëpërmjet kodit]Referime
[Redakto | Redakto nëpërmjet kodit]- ^ Hutchins, J. (2005). "The history of machine translation in a nutshell" (PDF) (në anglisht). Arkivuar nga origjinali (PDF) më 13 korrik 2019. Marrë më 25 maj 2023.
- ^ "ALPAC: the (in)famous report", John Hutchins, MT News International, no. 14, June 1996, pp. 9-12
- ^ Koskenniemi, Kimmo (1983), Two-level morphology: A general computational model of word-form recognition and production (PDF) (në anglisht), Department of General Linguistics, University of Helsinki, arkivuar nga origjinali (PDF) më 21 dhjetor 2018, marrë më 25 maj 2023
- ^ Joshi, A. K., & Weinstein, S. (1981, August). Control of Inference: Role of Some Aspects of Discourse Structure-Centering. In IJCAI (pp. 385-387).
- ^ Guida, G.; Mauri, G. (korrik 1986). "Evaluation of natural language processing systems: Issues and approaches". Proceedings of the IEEE (në anglisht). 74 (7): 1026–1035. doi:10.1109/PROC.1986.13580. ISSN 1558-2256.
- ^ Chomskyan linguistics encourages the investigation of "corner cases" that stress the limits of its theoretical models (comparable to pathological phenomena in mathematics), typically created using thought experiments, rather than the systematic investigation of typical phenomena that occur in real-world data, as is the case in corpus linguistics. The creation and use of such corpora of real-world data is a fundamental part of machine-learning algorithms for natural language processing. In addition, theoretical underpinnings of Chomskyan linguistics such as the so-called "poverty of the stimulus" argument entail that general learning algorithms, as are typically used in machine learning, cannot be successful in language processing. As a result, the Chomskyan paradigm discouraged the application of such models to language processing.
- ^ Goldberg, Yoav (2016). "A Primer on Neural Network Models for Natural Language Processing". Journal of Artificial Intelligence Research (në anglisht). 57: 345–420. arXiv:1807.10854. doi:10.1613/jair.4992.
- ^ Goodfellow, Ian; Bengio, Yoshua; Courville, Aaron (2016). Deep Learning (në anglisht). MIT Press.
- ^ Jozefowicz, Rafal; Vinyals, Oriol; Schuster, Mike; Shazeer, Noam; Wu, Yonghui (2016). Exploring the Limits of Language Modeling (në anglisht). Bibcode:2016arXiv160202410J.
- ^ Choe, Do Kook; Charniak, Eugene. "Parsing as Language Modeling". Emnlp 2016 (në anglisht). Arkivuar nga origjinali më 2018-10-23. Marrë më 2018-10-22.
- ^ Vinyals, Oriol; etj. (2014). "Grammar as a Foreign Language" (PDF). Nips2015 (në anglisht). arXiv:1412.7449. Bibcode:2014arXiv1412.7449V.
- ^ Turchin, Alexander; Florez Builes, Luisa F. (2021-03-19). "Using Natural Language Processing to Measure and Improve Quality of Diabetes Care: A Systematic Review". Journal of Diabetes Science and Technology (në anglisht). 15 (3): 553–560. doi:10.1177/19322968211000831. ISSN 1932-2968. PMC 8120048. PMID 33736486.
- ^ Winograd, Terry. Procedures as a Representation for Data in a Computer Program for Understanding Natural Language (Tezë) (në anglisht).
- ^ Schank, Roger C.; Abelson, Robert P. (1977). Scripts, Plans, Goals, and Understanding: An Inquiry Into Human Knowledge Structures (në anglisht). Hillsdale: Erlbaum. ISBN 0-470-99033-3.
- ^ Mark Johnson. How the statistical revolution changes (computational) linguistics. Proceedings of the EACL 2009 Workshop on the Interaction between Linguistics and Computational Linguistics.
- ^ Philip Resnik. Four revolutions. Language Log, February 5, 2011.
- ^ "Investigating complex-valued representation in NLP" (PDF) (në anglisht).
- ^ Socher, Richard. "Deep Learning For NLP-ACL 2012 Tutorial". www.socher.org (në anglisht). Arkivuar nga origjinali më 14 prill 2021. Marrë më 2020-08-17. This was an early Deep Learning tutorial at the ACL 2012 and met with both interest and (at the time) skepticism by most participants. Until then, neural learning was basically rejected because of its lack of statistical interpretability. Until 2015, deep learning had evolved into the major framework of NLP. [Link is broken, try http://web.stanford.edu/class/cs224n/]
- ^ Yi, Chucai; Tian, Yingli (2012), "Assistive Text Reading from Complex Background for Blind Persons", Camera-Based Document Analysis and Recognition (në anglisht), Springer Berlin Heidelberg, fq. 15–28, CiteSeerX 10.1.1.668.869, doi:10.1007/978-3-642-29364-1_2, ISBN 9783642293634
- ^ "What is Natural Language Processing? Intro to NLP in Machine Learning". GyanSetu! (në anglishte amerikane). 2020-12-06. Marrë më 2021-01-09.
- ^ Kishorjit, N.; Vidya, Raj RK.; Nirmal, Y.; Sivaji, B. (2012). "Manipuri Morpheme Identification" (PDF). Proceedings of the 3rd Workshop on South and Southeast Asian Natural Language Processing (SANLP) (në anglisht). COLING 2012, Mumbai, December 2012: 95–108.
{{cite journal}}
: Mirëmbajtja CS1: Vendodhja (lidhja) - ^ Klein, Dan; Manning, Christopher D. (2002). "Natural language grammar induction using a constituent-context model" (PDF). Advances in Neural Information Processing Systems (në anglisht).
- ^ PASCAL Recognizing Textual Entailment Challenge (RTE-7) https://tac.nist.gov//2011/RTE/
- ^ "Argument Mining - IJCAI2016 Tutorial". www.i3s.unice.fr (në anglisht). Arkivuar nga origjinali më 18 prill 2021. Marrë më 2021-03-09.
- ^ "NLP Approaches to Computational Argumentation – ACL 2016, Berlin" (në anglishte britanike). Marrë më 2021-03-09.
Leximi më tej
[Redakto | Redakto nëpërmjet kodit]- Bates, M (1995). "Models of natural language understanding". Proceedings of the National Academy of Sciences of the United States of America (në anglisht). 92 (22): 9977–9982. Bibcode:1995PNAS...92.9977B. doi:10.1073/pnas.92.22.9977. PMC 40721. PMID 7479812.
- Steven Bird, Ewan Klein, and Edward Loper (2009). Natural Language Processing with Python. O'Reilly Media. ISBN 978-0-596-51649-9.
- Daniel Jurafsky and James H. Martin (2008). Speech and Language Processing, 2nd edition. Pearson Prentice Hall. ISBN 978-0-13-187321-6.
- Mohamed Zakaria Kurdi (2016). Natural Language Processing and Computational Linguistics: speech, morphology, and syntax, Volume 1. ISTE-Wiley. ISBN 978-1848218482.
- Mohamed Zakaria Kurdi (2017). Natural Language Processing and Computational Linguistics: semantics, discourse, and applications, Volume 2. ISTE-Wiley. ISBN 978-1848219212.
- Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze (2008). Introduction to Information Retrieval. Cambridge University Press. ISBN 978-0-521-86571-5. Official html and pdf versions available without charge.
- Christopher D. Manning and Hinrich Schütze (1999). Foundations of Statistical Natural Language Processing. The MIT Press. ISBN 978-0-262-13360-9.
- David M. W. Powers and Christopher C. R. Turk (1989). Machine Learning of Natural Language. Springer-Verlag. ISBN 978-0-387-19557-5.