使用JAVA自然語言處理_第1頁
使用JAVA自然語言處理_第2頁
使用JAVA自然語言處理_第3頁
使用JAVA自然語言處理_第4頁
使用JAVA自然語言處理_第5頁
已閱讀5頁,還剩10頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

自然語言處理簡介使用計算機進行自然語言的處理,主要包括以下的內(nèi)容:speechprocessingrelationshipextractiondocumentcategorizationsummationoftext這些類型的分析,建立在以下的基本技術(shù)上:tokenization,sentencedetectionclassificationextractingrelationships什么是NLP?使用計算機科學、人工智能和語言學概念進行自然語言分析的領(lǐng)域。他就是一組用于從web或文本文檔中抽取有意義或有用的工具集。為什么使用NLP?NLP的使用領(lǐng)域搜索用于標識文本的特殊元素機器翻譯從一種自然語言翻譯成另一種自然語言概括、總結(jié)(Summation)對文章、文檔或文檔集合進行概括、總結(jié),NLP在這方面比較成功NamedEntityRecognition(NER)主要包括地名、人名和物體的抽取,通常和其他NLP使用場景聯(lián)合使用,如處理查詢串Informationgrouping輸入文檔,基于內(nèi)容創(chuàng)建一系列的catalog。PartsofSpeedTagging(POS)主要是把文本分割成不同的語法元素,如:名詞、動詞等。Sentimentanalysis使用此種技術(shù)來判斷人們對物品的感覺和態(tài)度AnsweringquerySpeechrecognition分析HumanSpeechNaturalLanguageGeneration從數(shù)據(jù)中產(chǎn)生文本NLP的難點NLP工具總述APIURLApertiumGeneralArchitectureforTextEngineeringhttp://gate.ac.ukLearningBasedJava/page/software_view/LBJLinguaStreamLingPipe/lingpipeMalletMontyLingua/~hugo/montylinguaApacheOpenNLPUIMAStanfordParser/softwareApacheOpenNLP包含執(zhí)行任務的幾個組件,支持Model的訓練和測試。使用OpenNLP的通常模式是從文件中實例化支持某種任務的Model,通過在此Model上執(zhí)行方法來完成某項任務。StanfordNLP支持英文、中文和基本的NLP任務,包括分詞和NER在商業(yè)產(chǎn)品中不免費,需要購買license。LingPipe支持Model的訓練和測試。在商業(yè)產(chǎn)品中是受限的。GATE(GeneralArchitectureforTextEngineering)使用JAVA開發(fā)的工具集,支持多種NLP任務及語言,可基于pipeline模式進行NLP處理。它提供文檔Viewer,用于顯示文檔和annotation。GateMimir:用于文本的search和index。UIMAUIMA是一個NLPpipeline框架的標準,被ApacheUIMA所支持。他支持pipeline的創(chuàng)建,也描述了一系列的在文本分析中的設計模式、數(shù)據(jù)呈現(xiàn)和用戶角色。文本處理任務總述FindingPartsofTextFindingSentencesFindingPeopleandThingsDetectingPartsofSpeechClassifyingTextandDocumentsExtractingRelationshipsCombinedApproachesFindingPartsofText文本可分為不同類型的元素,如:WordSentenceParagraphWord的分類包括:SimplewordMorpheme(詞素)Prefix/SuffixSynonym(同義詞)AbbreviationAcronym(首字母縮略語)Contraction(縮寫)Number標識這些部分對于其他NLP任務是由益處的。FindSentenceFindingpeopleandthingWordprocessor可以定位特定的Word和Phrase。DetectingPartsofSpeech(詞性標注?)對文本組成部分進行分類的另一種方式是在sentencelevel。DetectingPartsofSpeech對于抽取關(guān)系或判斷文本的意義是比較有用的。發(fā)現(xiàn)關(guān)系叫做ParsingClassifyingtextanddocument即基于文本或文檔中的信息打標簽。如果標簽已知就是分類,否則就是聚類。Extractingrelationships標識存在于文本中的關(guān)系Extractingrelationship在建立知識基礎(chǔ)、執(zhí)行趨勢分析等方面是非常有用的。查找關(guān)系有時也叫文本分析。理解NLPModelNLP基本任務的執(zhí)行步驟如下:IdentifyingthetaskSelectingamodelBuildingandtrainingthemodelVerifyingthemodelUsingthemodelIdentifyingthetask需要在理解要解決的問題基礎(chǔ)上,選擇一系列的任務。SelectingaModelModel依賴于要處理的文本的狀態(tài)進行選擇。Buildingandtrainingthemodel訓練模型就是在數(shù)據(jù)集上執(zhí)行算法的過程。Verifyingthemodel在驗證數(shù)據(jù)上對Model進行驗證準備數(shù)據(jù)FindingPartsofText主要關(guān)注于把文本分解成token,可包含其他處理,如:StemmingLemmatizationStopwordremovalSynonymexpansion轉(zhuǎn)換大小寫WhatistokenizationToken是基于一系列的分隔符進行分割的。Tokenization需要考慮的因素語言文本格式StopwordTextexpansionCaseStemmingandLemmatizationUsesoftokenizerNLPtokenizerAPI使用OpenNLPTokenizer在OpenNLP中提供了Tokenizer接口,在此基礎(chǔ)上實現(xiàn)了三個類:SimpleTokenizer、TokenizerME和WhitespaceTokenizer。接口支持兩種方法:Tokenize:作為字符串數(shù)組,返回tokenTokenizePos:返回一個Span對象的數(shù)組。Span用于指定token的開始和結(jié)束。SimpleTokenizer在此Tokenizer中標點符號作為token返回。WhitespaceTokenizer使用空格作為分隔符。TokenizerME使用由MaximumEntropy(maxent)生成的model和一個statisticalmodel進行tokenization。Maxentmodel用于判斷text間的關(guān)系TokenizerModel隱藏了model細節(jié),用于Tokenizer的實例化.使用Stanford的tokenizer包括以下的tokenizer:PTBTokenizerDocumentPreprocessorStanfordCoreNLP使用PTBTokenizer這個Tokenizer模仿PennTreebank3(PTB),他與PTB的區(qū)別是他的選項和他支持Unicode。使用DocumentPreprocessor支持對簡單文本和xml文件的Tokenizer使用StanfordCoreNLPStanfordCoreNLP可作為pipeline使用,pipeline中要發(fā)生的動作可通過“annotators”進行指定。訓練Tokenizer訓練數(shù)據(jù)就是用空格或<SPLIT>進行分隔的word。<SPLIT>用于提供進一步的信息。可以使用OpenNLP的TokenizerME的train方法用于創(chuàng)建一個Model。Maxent用于判斷文本間元素的關(guān)系。UnderstandingnormalizationNormalization就是把一系列的詞轉(zhuǎn)換成更為統(tǒng)一的形式的過程。Normalization的操作包括以下幾種:ChangingcharacterstolowercaseExpandingabbreviationRemovingstopwordsStemmingandlemmatizationChangingcharacterstolowercase可用于提升查詢結(jié)果。Removingstopwords名詞解釋Model就是執(zhí)行任務的一系列規(guī)則FindingSentences(SBD)SBD過程是依賴于語言的,常規(guī)的途徑包括:使用一組規(guī)則訓練一個模型SBD困難的原因原因:PunctuationisfrequencyambiguousAbbreviationsoftencontainperiodSentencesmybeembeddedwithineachotherbytheuseofquotesWithmorespecializedtext,wemayneedtoconsidertheuseofnewlinesorcompletionofclauses.使用NLPAPIsNLP中的SBD有些是基于規(guī)則的,有些是基于Model的。使用OpenNLPOpenNLP基于Model執(zhí)行SBD。SentenceDetectorME用于進行SBD。使用SentenceDetectorME通過SentenceModel進行Model的加載。使用Stanford使用PTBTokenizerPTBTokenizer使用規(guī)則和一系列的選項進行SBD。PTBTokenizer構(gòu)造函數(shù)接收三個參數(shù):Reader:封裝要處理的文本實現(xiàn)LexedTokenFactory接口的對象包含分割選項的字符串使用DocumentPreprocessor此類通過Reader參數(shù)來接受要分割的文本,此類也實現(xiàn)了Iterable接口。使用StanfordCoreNLP支持使用ssplitannotator進行sentence的發(fā)現(xiàn)。使用LingPipe使用類的層次結(jié)構(gòu)來支持SBD。訓練SentenceDetectorModel使用OpenNLP的SentenceDetectorME展示訓練過程。這個類有個靜態(tài)的方法train()用于使用例子sentence進行模型訓練。Model使用一個特殊的annotateddata來明確指定sentence在哪里結(jié)束。使用SentenceDetectorEvaluator評價Model從Precision、recall和F-Measure三個方面進行評價最好控制Precision在0.9以上Precision:fractionofcorrectinstancesthatareincludedRecall:reflectthesensitivityofmodelF-Measure:combinePrecision和Recall,itreflecthowmodelworks.FindingPeopleandThings(NamedEntityRecognitionNER)通常來說,entity類型包括:PeopleLocationOrganizationMoneyTimeURLNER是一個比較重要和有用的NLP任務。NER的一個任務是找到屬于一個category的entities。NER通常包括下面兩個任務:發(fā)現(xiàn)entities對entities進行classificationNER通常應用在sentence級別。使用NLPAPISOpenNLP通常的過程是:把文本分成句子使用model創(chuàng)建TokenNameFinderModel的實例使用TokenNameFinderModel的實例初始化NameFinderME使用find方法標識文本中的entity判斷entity的精度使用NameFinderME的probs方法可以得到entity的精度。StanfordAPI使用CRFClassifier進行NER。LingPipe使用ExactDictionaryChunker進行NER。訓練模型訓練文件的要求:包含界定entity的記號:<START:catalog><END>一行一句評價模型可以使用TokenNameFinderEvaluator進行model的評價。DetectingPartofSpeechPart指的是語法元素,如:名詞、動詞等。ThetaggingprocessTagging就是賦予token或文本的一部分一個描述的過程。POSTagging就是給token一個POSTag的過程。這些POSTag包括:名詞、動詞和形容詞等。POSTagging的兩種比較常用的途徑:Rule-basedStochastic:基于MarkovModel或cue-based(decisiontree或maximumentropy)。Markov就是有限狀態(tài)機,每個狀態(tài)有兩個distribution。有時也會使用HMMPOS的重要性POS可以提高其他處理任務的質(zhì)量。POS是很多其他任務的基礎(chǔ),如:question分析和文本情感分析等。使用NLPAPIOpenNLPOpenNLP提供幾個類來支持POS。POSTaggerME使用Maximumentro進行tag。基于word本身和上下文判斷tag的類型。一個word可以有多個tag。使用OpenNLPchunkingChunking處理包括把一個sentence分成不同的part和chunk。這些chunk可被tag。這個過程通過ChunkerME來完成。使用POSDictionary在POSModel基礎(chǔ)上,創(chuàng)建POSTaggerFactory。從POSTaggerFactory上獲取MutableTagDictionary?;贛utableTagDictionary進行tag。當增加新tag時,要考慮tag的循序。增加新的tagdictionary在POSTaggerFactory上通過setTagDictionary,可以增加新的tagdictionary?;谖募?chuàng)建一個dictionaryOpenNLP通過POSDictionary來支持一種通過xml文件創(chuàng)建dictionary的形式。Xml文件中應包括word和對應的tag。StanfordMaxentTagger:使用maximumentropy來找POS基于annotator通過pipeline來實現(xiàn)POS,英語的Tagger使用的是PennTreebankEnglishPOStagset。使用MaxentTaggerMaxentTagger使用model來進行tag任務。這些model文件的擴展名都是.tagger。LingPipe訓練POSModel數(shù)據(jù)文件必須一個sentence一行。每一行是由token、下劃線和tag組成。ClassifyingTextsandDocuments典型過程就是訓練模型,驗證模型和使用模型對文檔進行分類。情感分析就是一類分類問題。如何使用classification文本分類用于以下目的:SpamdetectionAuthorshipattributionSentimentanalysisAgeandgenderidentificationDeterminingthesubjectofadocumentLanguageidentification理解情感分析(Sentimentanalysis)主要用于分析對一個主題或產(chǎn)品有哪種類型的感覺。使用sentimentlexicon(就是包含不同詞的sentimentmeaning的字典)可以知道每個word有哪種類型的sentiment。GeneralInquirer(http:///~inquirer)就是這樣的一個詞典。文本分類技術(shù)文本分類的兩種技術(shù)途徑:基于規(guī)則的有監(jiān)督的機器學習基于規(guī)則的文本分類比較高效,但創(chuàng)建它們比較耗時。有監(jiān)督的機器學習(SML):使用annotatetraining文檔創(chuàng)建一個model,這個model一般叫做分類器。有許多的機器學習方法,包括:Na?veBayes,Support-VectorMachine(SVM)和k-nearestneighbor。使用NLPAPIOpenNLP通過DocumentCategorizer接口指定了支持分類的方法,CategorizerME是此接口的實現(xiàn)類。訓練OpenNLP模型訓練過程包括:創(chuàng)建一個包含訓練數(shù)據(jù)的文件使用CategorizerME進行實際的訓練把模型保存在文件中,以便后期使用訓練文件由一系列的行組成,每行代表一個文檔。每行的第一個word就是category。當創(chuàng)建訓練數(shù)據(jù)時,主要的問題是數(shù)量要足夠大。DoccatModel支持對文檔的categorization和classification。此Model需要使用DocumentCategorizerME的train()方法進行訓練。StanfordStanford支持幾種classifier。ColumnDataClassifier這個類使用一個property文件來進行創(chuàng)建過程的配置。這個配置文件用于指定參數(shù)信息、提供訓練數(shù)據(jù)和測試數(shù)據(jù)LingPipeDynamicLMClassifier進行實際的classification。使用Classified類訓練文本使用LingPipe進行文本分類,包括使用訓練文本訓練DynamicLMClassifier,然后用這個類執(zhí)行具體的分類工作使用Parser抽取關(guān)系Parsing是基于textualunit創(chuàng)建parsetree的過程。一個parsetree是一個表現(xiàn)一句話的語法結(jié)構(gòu)的層次數(shù)據(jù)結(jié)構(gòu)。Parsing主要用于以下方面:機器翻譯SynthesizingspeechfromtextSpeechrecognitionGrammarcheckingInformationextractionCoreference(同指)resolution:指的是兩個或多個表達式是同樣的東西。關(guān)系類型包含大量關(guān)系的站點是Freebase(),他是一個通過category組織people、place和thing的數(shù)據(jù)庫。WordNetthesaurus(同義詞詞典)包含一系列關(guān)系:RelationshipExamplePersonalfather-of,sister-of,girlfriend-ofOrganizationalsubsidiary-of,subcommittee–ofSpatialnear-to,northeast-of,underPhysicalpart-of,composed-ofInteractionsbonds-with,associates-with,reacts-with主要有兩種類型的parse:DependercyPhrasestructureDependency通過像subject、determiner和preposition等的label來找到關(guān)系。通常使用的技術(shù)包括:shift-reduce,spanningtree和cascadedchunking。理解parsetreeParsetree表現(xiàn)為文本元素的層次結(jié)構(gòu)。Dependencytree表現(xiàn)的句子中元素的語法關(guān)系。使用extractedrelationship使用的途徑包括:BuildingknowledgebasesCreatingdirectoriesProductsearchPatentanalysisStockanalysisIntelligenceanalysis有很多基于wiki抽取關(guān)系而建立的database,如:RDFDBPedia抽取關(guān)系抽取關(guān)系的技術(shù)包括:Hand-builtpatternSupervisedmethodSemi-supervisedorunsupervisedmethodBootstra

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論