Den konstituerande Sannolikhet Automatic Word-tagging System (CLAWS) ursprungligen utformades för låg nivå grammatisk analys av miljonordet LOB Corpus av engelska textprover. CLAWS försöker inte en fullständig tolkning, men använder en firat-order Markov modell av språk för att tilldela ordklass etiketter till ord. CLAWS kan ändras för att upptäcka grammatiska fel, främst genom att flagga osannolika ordklassövergångar i den ingående texten. Detta kan tyckas vara en intuitivt osannolik och teoretiskt otillräcklig modell av syntax för naturligt språk, men ändå kan den framgångsrikt peka ut de flesta grammatiska fel i en text. Flera ändringar av CLAWS har undersökts. Det resulterande systemet kan inte upptäcka alla fel i maskinskrivna dokument, men då inte heller långt mer komplexa system, som försöker en fullständig tolkning, rekvirera mycket större beräkning. Ett antal ~rcbers har experimenterat med sätt att hantera grammatiskt dåligt utformade engelska indata (till exempel [Carboneil och Hayes 83] [Weischedel och Sondheimer 83]). Men de flesta av dessa system är utformade för naturligt språk gränssnitt till programvarusystem, och så kan anta en begränsad vokabulär och syntax; till exempel, det system som diskuteras av [Fass 83] hade en vokabulär på mindre än 50 ord. Detta kan vara motiverat för ett NL front-end till ett datorsystem såsom en databas frågesystem, eftersom även en konstgjord delmängd av engelska kan vara mer acceptabelt för användare än ett formellt kommando eller frågespråk. Vid automatiserad textkontroll i Word Processing kan vi dock inte rimligen be WP-användaren att begränsa sin engelska text på detta sätt. Detta innebär att WP:s textkontrollsystem måste vara extremt robusta och kunna analysera ett mycket brett spektrum av lexiska och syntaktiska konstruktioner. Annars riskerar grammatikkontrollen att flagga många konstruktioner som i själva verket är acceptabla för människor, men råkar inte ingå i systemets begränsade grammatik. Ett system som inte bara utför syntaktisk analys av text, utan också anger grammatiska fel, måste bedömas längs två ortogonala skalor snarare än en enda "noggrannhet" åtgärd: Det är lätt att optimera en av dessa prestanda åtgärder på bekostnad av den andra, flaging (nästan) ALLA ord i en text kommer att garantera optimal minns (dvs. (nästan) alla faktiska fel kommer att flaggas) men med en låg precision; och omvänt, minska antalet ord som flaggas till nästan noll bör höja precisionen men sänka återkallandet. Problemet är att balansera denna kompromiss för att komma ihåg och precisionsnivåer som är godtagbara för WP-användare. Ett system som kan acceptera en begränsad delmängd engelska (och avvisa (eller flagga som felaktig) något annat) kan ha en rimlig återkallandegrad; det vill säga de flesta av de "sanna" felen kommer förmodligen att tas med i den förkastade texten. Det är dock sannolikt att precisionsgraden är oacceptabel för WP-användaren: stora mängder av den ingående texten kommer i praktiken att markeras som potentiellt felaktig, utan någon uppgift om var i denna text de faktiska felen finns. Ett sätt att ta itu med detta problem är att öka storleken och kraften i parsern och underliggande grammatik för att hantera något närmare hela spelningen av engelsk syntax; detta är den metod som används av IBM:s EPISTLE-projekt (se [Heidorn et al 82], [Jensen et al 83]). Tyvärr kan detta leda till ett mycket stort och beräknings dyrt system: [Heidorn et al 82] rapporterade att EPISTLE systemet krävde en 4Mb virtuell maskin (även om en mer effektiv implementering under utveckling bör kräva mindre minne). UNIX Writer's Workbench samling av program (se [Cherry och Macdonald 83], [Cherry et ai 83]) är förmodligen det mest använda systemet för WP text-kontroll (och även en av de mest använda NLP system overallsee [AtweU 86], [Hubert 85]). Detta system omfattar ett antal separata program för att kontrollera olika typer av fel, inklusive felstavningar, klichéer, och cee, har stilistiska fel, såsom alltför långa (eller korta) meningar. Det saknar dock en allmän grammatikkontroll, det närmaste programmet är ett verktyg för att filtrera bort dubbla ord (som i "Jag undertecknade kontraktet"). Även om det finns ett program PARTS som tilldelar en del av taltaggen till varje ord i texten (som en föregångare till de stilistiska analysprogrammen), använder detta program en uppsättning lokala heuristiska regler för att disambiguera ord enligt sammanhang; och dessa roller baseras på det underliggande antagandet att inmatningsmeningarna är grammatiskt välformade. Så det finns inget tydligt sätt att ändra DELAR för att flagga grammatiska fel, om vi inte inför en radikalt annorlunda mekanism för disambiguing ord * taggar enligt contexu CLAWS ursprungligen genomfördes i Pascal, men det är för närvarande omkodas i C och i POPLOG Prolog. CLAWS kan hantera obegränsad engelsk textinmatning inklusive "buller" eller illa utformade meningar, eftersom den är baserad på konstituerande Sannolikhet Grammar, ett nytt probabilistiskt förhållningssätt till grammatisk beskrivning och analys som beskrivs i [Atwell 83]. En konstituerande Sannolikhet Grammar används för att beräkna sannolikheten för konkurrerande putativ analys; inte bara detta säger oss vilken som är den "bästa" analysen, men det visar också hur "bra" denna analys är. För att tilldela ordtaggar till ord, en enkel Markoviansk modell kan användas i stället för en probabilistisk rewrite-role system (såsom en prohabilistisk sammanhangsfri grammatik); detta förenklar avsevärt bearbetning. CLAWS använder först en ordbok, sufflxlist och andra standardrutiner för att tilldela en uppsättning putativa taggar till varje ord; sedan, för varje sekvens av tvetydigt taggade ord, sannolikheten för varje möjlig kombination eller "kedja" av taggar utvärderas, och den bästa kedjan väljs. Sannolikheten av varje kedja av taggar utvärderas som en produkt av alla "länkar" (tag-pair-likelihoods) i sekvensen; tag-pair sannolikhet är en funktion av frekvensen av denna sekvens av två taggar i ett prov av taggad text, jämfört med frekvensen av var och en av de två taggarna individuellt. En viktig fördel med denna enkla Markovianska modell är att ordmärkning görs utan tolkning: det finns inget behov av att räkna ut träd med högre struktur innan man ger entydiga ordmärkningar till ord. Trots sin enkelhet är denna teknik förvånansvärt robust och framgångsrik: CLAWS har använts för att analysera ett brett utbud av obegränsade engelska, inklusive utdrag bildar tidningar, romaner, dagböcker, lärda tidskrifter, E.E.C. regler, etc., med en konsekvent noggrannhet på c96%. Även om systemet inte hade parsträd tillgängliga för att bestämma ordklasser, var endast cA% av ord i LOB Corpus tvungen att få sitt tilldelade ordtag korrigerat genom manuell redigering (se [Atwell 81, 82]). En annan viktig fördel med den enkla Markovianska modellen är att det är relativt enkelt att överföra modellen från engelska till andra naturliga språk. Den grundläggande statistiska modellen återstår, endast ordboken och Markovian tag-pair frekvenstabell behöver ersättas. Vi experimenterar med möjligheten att (delvis) automatisera även denna process - se [Atweli 86a, 86b, vilket betyder <possessive personlig pronomen>, <komparativ adverb>, <past singular BE>. Denna analys skickas sedan till kontrollmodulen, som använder tagg-parfrekvens statistik extraheras från kopiösa prover av felfull texter. Dessa bör visa att taggpar <PP$ RBR> och <RBR BEDZ> ofta förekommer där det finns ett skrivfel, och sällan förekommer i grammatiskt korrekta konstruktioner; så ett fel kan flaggas vid motsvarande punkt i texten. Även om justeringen till modellen är teoretiskt enkel, de tag-pair felsannolikhet siffror som krävs kunde endast plockas genom mänsklig analys av enorma mängder fel-full text. Våra inledande insatser för att samla in en felkorpus övertygade oss om att detta tillvägagångssätt var opraktiskt på grund av den tid och ansträngning som krävs för att samla in nödvändiga data. I vilket fall som helst visar sig en alternativ teknik som hanterades utan en separat tabell över fel i taggparet vara ganska framgångsrik. Denna alternativa teknik innebar att använda CLAWS omodifierad för att välja den bästa taggen för varje ord, som tidigare, och sedan mäta ABSOLUTE LIKELIHOODS av taggpar. I stället för en separat feltabell för tagg-par för att bedöma grammatiken används samma tabell för tagg-parfrekvenser för tag-tilldelning och feldetektering. Taggparsfrekvenstabellen ger frekvenser för grammatiskt välformad text, så den andra modulen antar helt enkelt att om en låglikelihood tag par förekommer i inmatningstexten, indikerar det ett grammatiskt fel. I exemplet ovan har taggpar <PP$ RBR> och <RBR BEDZ> låga sannolikheter (eftersom de endast förekommer sällan i grammatiskt välformad text), så ett fel kan diagnostiseras. Figur 1 är ett mer utförligt exempel på denna metod för feldiagnos. Detta visar analysen av en kort text; observera att texten endast konstruerades för illustrationsändamål 39, och de nämnda tecknen har ingen likhet med verkliga levande människor! Texten innehåller många felaktigt formulerade ord, men dessa misstag skulle inte upptäckas av en konventionell stavningskontrollerare, eftersom felformerna råkar sammanfalla med andra rättsliga engelska ord. Det enda sättet att upptäcka dessa fel är genom att notera att de resulterande fraserna och klausulerna är ogrammatiska. Granunarcheckningsprogrammet delar först indatatexten i ord. Observera att detta inte är helt trivialt: till exempel, enclitis som jag ska, inte kommer att delas upp i två ord I II, kommer +n't. Den vänstra kolumnen i figur I visar sekvensen av ord i provtexten, ett ord per rad. Den andra kolumnen visar den grammatiska taggen som valts med hjälp av konstituerande sannolikhetsmodell som bäst i det givna sammanhanget. Den tredje kolumnen visar den absoluta sannolikheten för den valda grammatiska taggen; denna sannolikhet normaliseras i förhållande till en tröskel, så att värden större än en utgör "acceptabla" grammatiska analyser, medan värden mindre än en är tecken på oacceptabelt oacceptabel grammatik. Närhelst det absoluta sannolikhetsvärdet faller under denna godtagbarhetströskel, flaggans ERROR? är utdata i den fjärde kolumnen, för att dra visuell uppmärksamhet till det putativa felet. Således, till exempel, det första ordet i texten, min, är märkt PP$ (possessive personlig pronomen), och denna tagg har en normaliserad absolut sannolikhet på över 15, vilket är acceptabelt; det andra ordet, längre, är märkt RBR (komparativ adverb), men denna gång är den absoluta sannolikheten under en (0.264271), så ordet flaggas som en putativ Denna teknik är extremt primitiv, men verkar fungera ganska bra. Det finns inte längre något behov av att samla fellikelihoods från en Fel Corpus. Definitionen av vad som utgör en "låg" sannolikhet är dock inte enkel. På det hela taget finns det ett någorlunda tydligt samband mellan orden markerade ERROR? Och faktiska misstag, så klart låga värden kan betraktas som feldiagnos, när väl frågan om vad som utgör "låghet" har definierats rigoröst. I exemplet definieras acceptansnivån i termer av ett enkelt tröskelvärde: sannolikheten är normaliserad så värden under 1.00000000 anses vara för låga för att vara godtagbara. Den lämpliga normaliseringsskalningsfaktorn konstaterades empiriskt. Tyvärr skulle en tröskel på denna nivå innebära att vissa mindre tråg inte skulle flaggas, t.ex. smart i jag stal ett kött smart.... (som märktes JJ (adjektiv) men borde ha varit substantivet cleaver ) har en normaliserad sannolikhet 4.516465, tam i den ohyggliga tam av Eroc Attwell... (som också märkts JJ (adjective) men borde ha varit substantivet ) har också en normaliserad sannolikhet 4.516465, och frasen vann dag (som borde ha varit en dag ) innebär en normaliserad sannolikhet på 4.060886 (även om detta är, strikt sagt, i samband med dag snarare än vann, en felflagga skulle vara tillräckligt nära det faktiska felet för att dra användarens uppmärksamhet till det). Om vi emellertid höjde tröskelvärdet (eller alternativt ändrade normaliseringsfunktionen så att dessa normaliserade sannolikheter är under 1.00000000), skulle fler ord flaggas, vilket skulle minska precisionen i feldiagnosen. I vissa fall, feldiagnos skulle vara "blurred", eftersom någon gång-'~ ord omedelbart före och / eller efter felet också har låga sannolikheter; till exempel, var i min längre vms mycket crawl.., har en sannolikhet på 1.216545. Ännu värre, vissa fel flaggor skulle visas på helt olämpliga platser, utan verkliga fel i det omedelbara sammanhanget; till exempel, utropsmärket i slutet av han kommer inte att komma undan med detta! har en sannolikhet på 4,185351 och så skulle förmodligen markeras som ett fel om tröskelvärdet höjdes. Moder sätt att definiera en tråg skulle vara ett lokalt minimum, det vill säga en punkt på där punkter omedelbart före och efter har högre sannolikhetsvärden, även en tråg med ett ganska högt värde markeras på detta sätt så länge omgivande punkter är ännu högre. Detta skulle fånga smarta, tama och vann dagen som nämns ovan. Men strikt talat flera andra ord som för närvarande inte flaggas i Figur 1 är också lokala minima, till exempel min i kanske mina vänner skulle... och ~ i han ba/d på mig /f [... Så denna definition kan leda till att ett större antal "röd sill" giltiga ord felaktigt markeras som putativa misstag, vilket återigen leder till en sämre precision. När en optimal tröskel eller annan beräkningsdefinition av låg sannolikhet har valts, är det en enkel sak att ändra utdatarutinen för att producera utdata i ett förenklat format som är godtagbart för Word Processor-användare, utan grammatiska taggar eller sannolikhetsbetyg men med putativa fel markerade. Men även med ett optimalt mått på låghet, är det osannolikt att framgången är perfekt. Modellen innehåller avsiktligt endast rudimentär kunskap om engelska: en lexikon av ord och deras ordtaggar, och en tagg-parfrekvensmatris som förkroppsligar kunskap om tagg coocrence sannolikheter. Vissa typer av fel kommer sannolikt inte att upptäckas utan viss ytterligare kunskap. En begränsad förstärkning till denna enkla modell innebär tillägg av feltaggar till analysförfarandet. En något mer sofistikerad teknik för att ta syntaktisk sammanhang i beaktande innebär att lägga ERROR-TAGS till lexical poster. Detta är taggarna för alla liknande ord (där dessa skiljer sig från ordets egna taggar). I analysfasen måste systemet sedan välja den bästa taggen (från felteg(er) och "egna" tag(er)) enligt syntaktiskt sammanhang, fortfarande använda den omodifierade CLAWS konstituerandeLikelihood-modellen. Till exempel, i meningen är jag mycket träffad. Ett fel kan diagnostiseras om systemet visar att taggarna för inmatningsord slog ( NN, VB, VBD, och VBN <singular cormnon noun>, <verb infinitiv>, <verb tidigare presens>, <verb tidigare participple>) alla är mycket mindre sannolika i det givna sammanhanget än J3 (<adjektiv>), kända för att vara taggen för ett liknande ord (varmt). Så, en något mer soph / ticated feldetekteringssystem inkluderar kunskap inte bara om taggar av ord, men också om vilka alternativa ord-klasser skulle vara rimligt om inmatningen var ett fel. Denna information består av ytterligare ett fält i lexikonposter: varje ordlista måste innehålla (i) själva ordet, (ii) ordets egna taggar och (iii) de fel-taggar som hör ihop med ordet. Till exempel:.  Observera att fel-taggar är markerade med # för att skilja dem från egna taggar. CLAWS väljer sedan den bästa taggen för varje ord som vanligt. Men i den slutliga utmatningen, i stället för att varje ord markeras med den valda ordstämpeln, markeras ord som hör ihop med en ERROR TAG som potentiella fel. För att illustrera varför fel-taggar kan hjälpa vid feldiagnos, lägg märke till att tät i jag piga flera täta i h/s... inte har en under-tröskel absolut sannolikhet, och så är inte flaggas som en putativ fel. Ett fel-tag-baserat system kunde beräkna att den bästa sekvensen av taggar (tillåta fel-taggar) för ordet sekvens flera täta i hans... är [AP NNS~ IN PP$] (< post-determiner>, <plural vanliga substant>, <preposition>, <possessive personlig pronomen>). Eftersom NNS är ett feltaggar, flaggas ett fel. Den enklare absolut sannolikhetsbaserade modellen medger dock inte alternativet att välja NNS som tagg för täthet, och tvingas välja det bästa av de "egna" taggarna. Detta orsakar i sin tur en missmatchning av /n som NNU (< förkortad måttenhet>, eftersom [JJ NNU] (<adjektiv> < förkortad måttenhet>) är mer lik [JJ IN] (<adjektiv> < preposition>). Dessutom visar sig [JJ NU] inte vara en ovanligt ovanlig tagg kooccurrence. Poängen med allt detta är att, utan fel-taggar, systemet kan feltagga ord omedelbart före eller efter felord, och denna felsökning kan mycket väl snedvrida de absoluta sannolikheter som används för feldiagnos. Denna fel-tag-baserade teknik föreslogs ursprungligen och illustrerades i [Atwell 83]. Metoden har testats med en liten testlexikon, men vi har ännu inte byggt en komplett ordbok med feltaggar för alla ord. Att lägga till feltaggar till en stor lexikon är en icke-trivial forskningsuppgift; och att lägga till feltaggar till analysstadiet ökar beräkningen, eftersom det finns fler taggar att välja mellan för varje ord. Hittills har vi inte funnit några avgörande bevis för att framgångsgraden ökar avsevärt; detta kräver ytterligare utredning. Även att bli mer fullständigt undersökt är hur man tar hänsyn till andra relevanta faktorer i feldiagnos, förutom fel-taggar. I teorin kunde åtminstone konstituerande-likviditetsmetoden genersliseras för att ta hänsyn till alla relevanta kontextuella faktorer, inte bara syntaktisk bindning. Detta kan göras genom att generera COHORTS för varje inmatningsord, och sedan välja kohort-medlemsordet som passar sammanhanget bäst. Till exempel, om meningen du var mycket träffad var input, skulle följande kohorter genereras: du yew tacke var där slitage mycket varierande veery hit varm hydda hatt (termen "kohort" anpassas från med en liten förändring av betydelsen). Cohorts av liknande ord kan upptäckas från stavningskontrollen ordbok med samma algoritm som används för att föreslå korrigeringar för felstavningar i nuvarande system; dessa tekniker är ganska väl förstådd (se, till exempel, [Yannakoudekis och Fawthrop] i) graden av likhet med ordet som faktiskt skrivits (denna åtgärd skulle vara tillgänglig i alla fall, eftersom det måste beräknas under kohortgenerering; det faktiska ordet typed får en likhetsfaktor på 1, och andra medlemmar i kohorten får lämplig lägre vikter) ii) graden av passform i det givna syntaktiska sammanhanget (mätt som syntaktisk komponent sannolikhetsbindning mellan tagg(er) för varje kohort medlem och tagg(er) i orden före och efter, med hjälp av CLAWS komponent sannolikhetsformel); iii) frekvensen av användning i allmänna engelska (vanliga ord som "du" och "mycket" få en hög viktningsfaktor, sällsynta ord som "ewe", "yew", och "vey" få en v) domänberoende lexiska preferenser bör helst tas i beaktande, till exempel i en aktuell domän bör manual. Alla dessa faktorer multipliceras (med lämpliga viktningar) för att ge en relativ sannolikhetsgrad för varje medlem av kohorten. Kohortmedlemmen med högsta betyg är (sannolikt) det avsedda ordet; om ordet faktiskt stavas är annorlunda, kan ett fel diagnostiseras, och dessutom kan en korrigering erbjudas användaren. Även om detta tillvägagångssätt i teorin kan tyckas förnuftigt skulle det i praktiken kräva en enorm FoU-insats för att samla in de statistiska uppgifter som behövs för att driva ett sådant system, och den resulterande modellen skulle vara komplex och dyr. Det skulle vara mer förnuftigt att försöka införliva endast de funktioner som väsentligt bidrar till ökad feldetektering, och bortse från alla andra faktorer. Detta innebär att vi måste testa det befintliga feldetekteringssystemet i stor utsträckning och analysera misslyckandena med att försöka upptäcka vilka ytterligare kunskaper som skulle vara användbara för systemet. De fel-likelihoud och full-kohort tekniker verkar ge de bästa fel-detektion hastigheter, men kräver stora beräkningar för att bygga ett allmänt syfte system från grunden. Fel-tag-tekniken kräver också en betydande forskning för att bygga en stor general-purpose lexikon. En version av Compituent Sanelihood Automatic Word-tagging System modifierat för att använda ABSOLUTE LIKELIOOD metoden för feldetektering har testats mer omfattande; detta system kan inte upptäcka alla grammatiska fel, men verkar vara ganska framgångsrik med vissa klasser av fel. För att testa alternativa prototyper bygger vi upp en ERROR CORPUS av texter som innehåller fel. LOB Corpus innehåller många fel 41 som förekom i de ursprungliga publicerade texterna; dessa är markerade SIC i texten, och noterade i Manualen som följer med Corpus-filerna, [Johansson et al 78]. Det ursprungliga felet Coqms bestod i dessa fel, och det läggs till från andra källor (se tacklingar nedan). Felen i Error Corpus kan (manuellt) klassificeras enligt den typ av bearbetning som krävs för detektion (exempelen nedan börjar med ett LOB-referensnummer): A: icke-ordfel-former, där felet kan hittas genom enkel ordbok-lookup; till exempel, A21 115 När nyheterna strömmar in från hela världen, beleagared (SIC) Berlin denna helg är en stad på en rakknivs kant.
REF använde låglikelihood sekvenser av POS-taggar som indikatorer för förekomsten av ett fel.
How To Detect Grammatical Errors In A Text Without Parsing IT
{'venue': 'Conference Of The European Association For Computational Linguistics', 'journal': None, 'mag_field_of_study': ['Computer Science']}