Upload
others
View
0
Download
0
Embed Size (px)
Citation preview
Grundläggande textanalys, VT2012
[email protected] 9-2035http://stp.ling.uu.se/~evelina/uv/uv12/gta/
(Tack till Sofia Gustafson-Capkovâ för material.)
mailto:[email protected]://stp.ling.uu.se/~evelina/uv/uv12/gta/
2
Idag
- minsta redigeringsavståndet för strängar
- diverse verktyg för stavningskontroll
3
Mininum edit distance (minsta redigeringsavståndet)
- namngavs av Wagner och Fischer(1974)
Idé:- Givet strängarna source och target- Hur många operationer (borttagning,insättning, ersättning) behöver man utföra för att omvandla source till target?
operationersource target
4
Mininum edit distance - Operationer
5
Mininum edit distance - Operationer
- borttagning, dvs ta bort en bokstav:
delete(r)sourrce source
6
Mininum edit distance - Operationer
- borttagning, dvs ta bort en bokstav:
delete(r)
- insättning, dvs lägg till en bokstav:
insert(r)
sourrce source
souce source
7
Mininum edit distance - Operationer
- borttagning, dvs ta bort en bokstav:
delete(r)
- insättning, dvs lägg till en bokstav:
insert(r)
- ersättning, dvs byt ut bokstav mot en annan bokstav:
substitute(t,r)
sourrce source
souce source
soutce source
8
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION
Target: EXECUTION
9
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION → delete(I) NTENTION
Target: EXECUTION
10
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION → delete(I) NTENTION → substitute(N,E) ETENTION
Target: EXECUTION
11
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION → delete(I) NTENTION → substitute(N,E) ETENTION → substitute(T,X) EXENUTION
Target: EXECUTION
12
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION → delete(I) NTENTION → substitute(N,E) ETENTION → substitute(T,X) EXENTION → insert(U) EXENUTION
Target: EXECUTION
13
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION ska omvandlastill EXECUTION?
Source: INTENTION → delete(I) NTENTION → substitute(N,E) ETENTION → substitute(T,X) EXENTION → insert(U) EXENUTION → substitute(N,C) EXECUTION
Target: EXECUTION
14
Mininum edit distance – Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION skaomvandlas till EXECUTION?
Svar:
Vi behöver använda följande operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
15
Mininum edit distance – Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION skaomvandlas till EXECUTION?
Svar:
Vi behöver använda följande operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
Hur tar vi reda på hur mycket det kostar att omvandla INTENTIONTill EXECUTION?
16
Mininum edit distance – Exempel
Source: INTENTIONTarget: EXECUTION
Vilka operationer behöver vi göra för att INTENTION skaomvandlas till EXECUTION?
Svar:
Vi behöver använda följande operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
Hur tar vi reda på hur mycket det kostar att omvandla INTENTIONTill EXECUTION? Jo, med hjälp av Levensteins avstånd.
17
Mininum edit distance – Levensteins avstånd
18
Mininum edit distance – Levensteins avstånd - Levenstein föreslog två kostnadsförslag för operationerna: – Alternativ 1: –- delete kostar 1 –- insert kostar 1 –- subsitution kostar 1 Kostnaden för vårt exempel blir 5.
19
Mininum edit distance – Levensteins avstånd - Levenstein föreslog två kostnadsförslag för operationerna: – Alternativ 1: –- delete kostar 1 –- insert kostar 1 –- subsitution kostar 1 Kostnaden för vårt exempel blir 5.
– Alternativ 2: –- delete kostar 1 –- insert kostar 1 –- subsitution ersätts med delete och insert, dvs kostar 2 Kostnaden för vårt exempel blir 8.
20
Mininum edit distance – Levensteins avstånd - Levenstein föreslog två kostnadsförslag för operationerna: – Alternativ 1: –- delete kostar 1 –- insert kostar 1 –- subsitution kostar 1 Kostnaden för vårt exempel blir 5.
– Alternativ 2: –- delete kostar 1 –- insert kostar 1 –- subsitution ersätts med delete och insert, dvs kostar 2 Kostnaden för vårt exempel blir 8.
- Genom att summera kostnaden för operationerna man behöver använda får man veta Levensteins avståndet.
21
Mininum edit distance – Levensteins avstånd - Levenstein föreslog två kostnadsförslag för operationerna: – Alternativ 1: –- delete kostar 1 –- insert kostar 1 –- subsitution kostar 1 Kostnaden för vårt exempel blir 5.
– Alternativ 2: –- delete kostar 1 –- insert kostar 1 –- subsitution ersätts med delete och insert, dvs kostar 2 Kostnaden för vårt exempel blir 8.
- Genom att summera kostnaden för operationerna man behöver använda får man veta Levensteins avståndet.
- Ju fler operationer man behöver använda desto mer skiljer sig orden åt → ju högre blir kostnaden
22
Mininum edit distance – Levensteins avstånd – Exempel
Source: INTENTIONTarget: EXECUTION
Operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
Vad kostar det att omvandla INTENTION till EXECUTION?
23
Mininum edit distance – Levensteins avstånd – Exempel
Source: INTENTIONTarget: EXECUTION
Operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
Vad kostar det att omvandla INTENTION till EXECUTION?
Svar: - Alternativ 1 –- delete kostar 1 –- insert kostar 1 –- subsitution kostar 1 Kostnaden blir 5.
24
Mininum edit distance – Levensteins avstånd – Exempel
Source: INTENTIONTarget: EXECUTION
Operationer: {delete(I), substitute(N,E), substitute(T,X), insert(U), substitute(N,C)}
Vad kostar det att omvandla INTENTION till EXECUTION?
Svar: - Alternativ 2: –- delete kostar 1 –- insert kostar 1 –- subsitution ersätts med delete och insert, dvs kostar 2 Kostnaden blir 8.
25
Mininum edit distance - Pseudokod
function MIN-EDIT-DISTANCE(target, source) returns min-distancen ← LENGTH(target)m ← LENGTH(source)Create a distance matrix distance[n+1,m+1]Initialize the zeroth row and column to be the distance from the empty string distance[0,0] = 0 for each column i from 1 to n do distance[i,0] = distance[i-1,0] + ins-cost(target[i]) for each row j from 1 to m do distance[j,0] = distance[0,j-1] + del-cost(source[j])
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
return distance[n][m]
J& M Figure 3.25
26
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
function MIN-EDIT-DISTANCE(target, source) returns min-distancen = 9, m = 9
distance[n+1][m+1]:
noitnetni#
# e x e c u t i o n
27
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
function MIN-EDIT-DISTANCE(target, source) returns min-distancedistance[0,0] = 0
noitnetni# 0
# e x e c u t i o n
n 9
m 9
distance:
28
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
function MIN-EDIT-DISTANCE(target, source) returns min-distancefor each column i from 1 to n do distance[i,0] = distance[i-1,0] + ins-cost(target[i])
noitnetni# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
i
29
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
function MIN-EDIT-DISTANCE(target, source) returns min-distancefor each row j from 1 to m do distance[j,0] = distance[0,j-1] + del-cost(source[j])
n 9o 8i 7t 6n 5e 4t 3n 2i 1# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
j
30
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 2
j
i
j
i
31
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 2sub:2
j
i
32
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 2sub:2del: 2
j
i
j
i
33
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 2sub:2del: 2
34
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: sub:del:
35
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 3 sub: del:
j
i
36
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 3 sub: 3del:
j
i
37
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 3 sub: 3del: 3
j
i
38
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 3 sub: 3del: 3
39
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: sub: del:
40
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 sub: del:
j
i
41
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 sub: 4 del:
j
i
42
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 sub: 4 del: 4
j
i
43
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 sub: 4 del: 4
44
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: sub: del:
45
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 + 1 = 5sub: del:
j
i
46
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 + 1 = 5sub: 3 + 0 = 3del:
j
i
47
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 + 1 = 5sub: 3 + 0 = 3del: 4 + 1 = 5
j
i
48
Mininum edit distance - Exempel
for each column i from 1 to n do for each row j from 1 to m do distance[i,j] = MIN(distance[i-1,j] + ins-cost(target[i-1]), distance[i-1,j-1] + sub-cost(source[j-1],target[i-1]), distance[i,j-1] + del-cost(source[j-1]))
n 9o 8i 7t 6n 5e 4 3t 3 4n 2 3i 1 2# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: 4 + 1 = 5sub: 3 + 0 = 3del: 4 + 1 = 5
49
Mininum edit distance - Exempel
Fortsätt tills alla celler i distance har något värde.
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: sub: del:
50
Mininum edit distance - Exempel
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
n 9
m 9
distance:
ins: sub: del:
return distance[n][m]
51
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Det minsta redigeringsavståndet är 8.
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
52
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Det minsta redigeringsavståndet är 8. Men hur får vi veta vilka operationerman behövde använda?
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
53
Mininum edit distance - Exempel
Source: INTENTIONTarget: EXECUTION
Det minsta redigeringsavståndet är 8. Men hur får vi veta vilka operationerman behövde använda? Jo, genom att spara en backpointer i varje cell som talar om i vilken cell vi kom ifrån när vi sparade värdet i cellen.
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
54
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
55
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
56
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
57
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
58
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
59
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
60
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
61
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
62
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – om den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer:
63
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u)
64
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
65
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
66
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
67
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
68
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
69
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
70
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
71
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c) sub(t,x)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
72
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c) sub(t,x)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
73
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c) sub(t,x)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
74
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c) sub(t,x) sub(n,e)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
75
n 9 8 9 10 11 12 11 10 9 8o 8 7 8 9 10 11 10 9 8 9i 7 6 7 8 9 10 9 8 9 10t 6 5 6 7 8 9 8 9 10 11n 5 4 5 6 7 8 9 10 11 10e 4 3 4 5 6 7 8 9 10 9t 3 4 5 6 7 8 7 8 9 8n 2 3 4 5 6 7 8 7 8 7i 1 2 3 4 5 6 7 6 7 8# 0 1 2 3 4 5 6 7 8 9
# e x e c u t i o n
Operationer: ins(u) sub(n,c) sub(t,x) sub(n,e) del(i)
Mininum edit distance - Exempel
Backtrace – idé: - Börja i den sista cellen distance[m][n]
– Välj en backpointer – gå till den cell backpointer pekar på. – den nya cellen har en annan kostnad → lägg till operationen i listan
76
Grammatikfix
77
Grammatikfix
- använder SWECG(Swedish Constraint Grammar) i följande steg:
1. Preprocessing 2. Morfologisk analys 3. Morfologisk disambiguering 4. Morfosyntaktisk mappning 5. Syntaktisk disambiguering
78
Grammatikfix – steg 1: Preprocessing
1. Preprocessing - ca 5 000 förkortningar - ca 150 fraser
än_så_längehadesnöninte börja falla
79
Grammatikfix – steg 2: Morfologisk analys
SWETWOL, ca 75 000 grundformer
"""än_så_länge" ADV
"""ha" V ACT PAST
"""snö" N UTR DEF SG NOM
"""inte" ADV
"""börja" V ACT INF"börja" V ACT IMP
"""falla" V ACT INF
80
Grammatikfix – steg 3: Morfologisk disambiguering
- Om ordet saknas i lexikonet: – man försöker hitta suffix i ordet som man kan plocka bort – det finns ca 60 – tal regler för detta
– om ordet fortfarande är okänt: → antag att ordet är ett substantiv
Exempel:"" "entreprenöriella" > A UTR/NEU DEF SG NOM "entreprenöriella" > A UTR/NEU DEF/INDEF PL NOM
81
Grammatikfix – steg 4: Morfosyntaktisk mappning
- SWECG har syntaktiska funktionstaggar
- I grammatikfix får alla ord BÅDA taggarna @ok och @err
Exempel:
"""ha" V ACT PAST @OK @ERR
"""snö" N UTR DEF SG NOM @OK @ERR
"""inte" ADV @OK @ERR
82
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
83
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
Exempel: bilens snabba accelerationen
84
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
Exempel: bilens snabba accelerationen
85
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
Exempel: bilens snabba accelerationen
86
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
Exempel: bilens snabba accelerationen
87
Grammatikfix - 5. Syntaktisk disambiguering
- För att avgöra vilken av taggarna @OK och @ERR som ska gälla används feldekteringsregler.
(@w=S!(@ERR) ; För ett ord (@w) välj (=S!) feltaggen (@ERR) (0 N-DEF) ; om ordet (0) är ett substantiv i bestämd form (N-DEF) (-2 GEN) ; om andra ordet till vänster (-2) är en gentitiv (GEN) (-1 A-DEF)); om det första ordet till vänster är ett adjektiv i bestämd form (A-DEF)
Exempel: bilens snabba accelerationenKontrollera ordformen accelerationen, om ett substantivstyrs av ett genitiv så bör det stå i obestämd form.
88
Grammatikfix - Feltyper
- Det finns 43 feltyper fördelade enligt följande kategorier:
89
Grammatikfix - Feltyper
- Det finns 43 feltyper fördelade enligt följande kategorier: – grammatiska fel, 26 stycken –- kongruens inom nominalfraser --- verbkedjor
90
Grammatikfix - Feltyper
- Det finns 43 feltyper fördelade enligt följande kategorier: – grammatiska fel, 26 stycken –- kongruens inom nominalfraser --- verbkedjor
– stilbrott på ordnivå, 3 stycken –- ålderdomliga ord --- talspråk --- byråkratiska ord
91
Grammatikfix - Feltyper
- Det finns 43 feltyper fördelade enligt följande kategorier: – grammatiska fel, 26 stycken –- kongruens inom nominalfraser --- verbkedjor
– stilbrott på ordnivå, 3 stycken –- ålderdomliga ord --- talspråk --- byråkratiska ord
– brott mot skrivkonventioner, 14 stycken – interpunktion – parenteser – etc
92
SCARRie
93
SCARRie
– Svenska, danska och norska
94
SCARRie
– Svenska, danska och norska
– Stavnings- och grammatikkontroll
95
SCARRie
– Svenska, danska och norska
– Stavnings- och grammatikkontroll
– baseras på en stor empirisk felundersökning
96
SCARRie
– Svenska, danska och norska
– Stavnings- och grammatikkontroll
– baseras på en stor empirisk felundersökning – ECD (SCARRie Error Corpora Database) –- består av ca 9 000 riktiga fel från UNT och SvD
97
SCARRie
– Svenska, danska och norska
– Stavnings- och grammatikkontroll
– baseras på en stor empirisk felundersökning – ECD (SCARRie Error Corpora Database) –- består av ca 9 000 riktiga fel från UNT och SvD
– verktyg för korrekturläsning
98
SCARRie - Feltyper
99
SCARRie - Feltyper
- Feltypologi i fyra nivåer
100
SCARRie - Feltyper
- Feltypologi i fyra nivåer
- ca 500 typer
101
SCARRie - Feltyper
- Feltypologi i fyra nivåer
- ca 500 typer
- Feltyper på den översta nivån: – Stavfel(SE) 43% – Interpunktionsfel(PU) 17% – Stil, referens och mening(SP) 16% – Grammatiska fel(GP) 15% – Grafiska fel(GR) 9%
102
SCARRie – Grammatiska feltyper
103
SCARRie – Grammatiska feltyper
– Prepositionsfras (11%) – Fel preposition prognoserna över elevernas utveckling
104
SCARRie – Grammatiska feltyper
– Prepositionsfras (11%) – Fel preposition prognoserna över elevernas utveckling
– Verbvalens (17%) – finns inget infinitivmärke imorgon kommer Kalle jobba
105
SCARRie – Grammatiska feltyper
– Prepositionsfras (11%) – Fel preposition prognoserna över elevernas utveckling
– Verbvalens (17%) – finns inget infinitivmärke imorgon kommer Kalle jobba
- Nominalfasen (41%) – numerusinkongruens mellan framförställt attribut och huvud en förfärrad fysiska aktivitet
106
SCARRie – Uppbyggnad
107
SCARRie – Uppbyggnad
– Stavningskontroll –- lexikonuppslagning --- regler för sammansättning --- baserad på CORRie
108
SCARRie – Uppbyggnad
– Stavningskontroll –- lexikonuppslagning --- regler för sammansättning --- baserad på CORRie
– Grammatikkontroll –- partiell parsning med Uppsala Chart Parser(UCP) ---- hitta fraserna (NP, etc) i meningen
109
SCARRie – Uppbyggnad
– Stavningskontroll –- lexikonuppslagning --- regler för sammansättning --- baserad på CORRie
– Grammatikkontroll –- partiell parsning med Uppsala Chart Parser(UCP) ---- hitta fraserna (NP, etc) i meningen
–- chart Scanner (ReportChart) –-- går igenom analyser och letar efter felaktiga särdrag
110
SCARRie – Grammatikkontroll
111
SCARRie – Grammatikkontroll
- regler som accepterar – en dator [NP]
112
SCARRie – Grammatikkontroll
- regler som accepterar – en dator [NP]
- regler som upptäcker morfosyntaktiska avvikelser – ett dator [NP med kongruensfel]
113
SCARRie – Grammatikkontroll
- regler som accepterar – en dator [NP]
- regler som upptäcker morfosyntaktiska avvikelser – ett dator [NP med kongruensfel]
– lokala felregler för strukturella fel på sats- och meningsnivå
114
SCARRie – Grammatikkontroll
115
SCARRie – Grammatikkontroll
- Kan hantera ca 30 grammatiska typer av fel
116
SCARRie – Grammatikkontroll
- Kan hantera ca 30 grammatiska typer av fel Exempel: - ordföljdsfel Hon undrar vad gör kattungarna
117
SCARRie – Grammatikkontroll
- Kan hantera ca 30 grammatiska typer av fel Exempel: - ordföljdsfel Hon undrar vad gör kattungarna
- fel i nominalfasen En gult blomma
118
SCARRie – Grammatikkontroll
- Kan hantera ca 30 grammatiska typer av fel Exempel: - ordföljdsfel Hon undrar vad gör kattungarna
- fel i nominalfasen En gult blomma - pronomenkasus och alla kan stötta de som spelade
119
Språkgranskningsverktyg för andra språk
120
Språkgranskningsverktyg för andra språk
- Critique
121
Språkgranskningsverktyg för andra språk
- Critique – Skapades under 80-talet och är det första grammatikbaserade språkkontrollsystemet
122
Språkgranskningsverktyg för andra språk
- Critique – Skapades under 80-talet och är det första grammatikbaserade språkkontrollsystemet
– IBM
123
Språkgranskningsverktyg för andra språk
- Critique – Skapades under 80-talet och är det första grammatikbaserade språkkontrollsystemet
– IBM
– Franska och Engelska
124
Språkgranskningsverktyg för andra språk
- Critique – Skapades under 80-talet och är det första grammatikbaserade språkkontrollsystemet
– IBM
– Franska och Engelska
– Föregångaren till språkkontrollen i Microsoft Word(eng. version)
125
Critique - feltyper
126
Critique - feltyper
- 25 grammatiska feltyper
127
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk
128
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk – fel i verbform looks to been/had walk
129
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk – fel i verbform looks to been/had walk – fel i pronomenform I walks
130
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk – fel i verbform looks to been/had walk – fel i pronomenform I walks
– skiljeteckenfel
131
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk – fel i verbform looks to been/had walk – fel i pronomenform I walks
– skiljeteckenfel
– sammanblandningar av ord: whose – who's
132
Critique - feltyper
- 25 grammatiska feltyper – numeriuskongruens many cat/she walk – fel i verbform looks to been/had walk – fel i pronomenform I walks
– skiljeteckenfel
– sammanblandningar av ord: whose – who's
– 85 stilistiska fel
133
CORRie
134
CORRie
- Holländska
135
CORRie
- Holländska
- generella feltyper:
136
CORRie
- Holländska
- generella feltyper: – Insättning: Vi har har redan åkt
137
CORRie
- Holländska
- generella feltyper: – Insättning: Vi har har redan åkt – Borttagning: Vi ___ redan åkt
138
CORRie
- Holländska
- generella feltyper: – Insättning: Vi har har redan åkt – Borttagning: Vi ___ redan åkt
– Substitution: the well performance
139
CORRie
- Holländska
- generella feltyper: – Insättning: Vi har har redan åkt – Borttagning: Vi ___ redan åkt
– Substitution: the well performance – Transposition: Kalle tror att vi åker inte imorgon
140
CORRie
- Holländska
- generella feltyper: – Insättning: Vi har har redan åkt – Borttagning: Vi ___ redan åkt
– Substitution: the well performance – Transposition: Kalle tror att vi åker inte imorgon – Feature mismatch: det stora katten
141
CORRie
- Grunden till feltyperna:
142
CORRie
- Grunden till feltyperna: – performansfel - insättning datorr
143
CORRie
- Grunden till feltyperna: – performansfel - insättning datorr - borttagning datr
144
CORRie
- Grunden till feltyperna: – performansfel - insättning datorr - borttagning datr
- subsitution dotor
145
CORRie
- Grunden till feltyperna: – performansfel - insättning datorr - borttagning datr
- subsitution dotor - transposition dtaor
146
CORRie
- Grunden till feltyperna: – kompetensfel - homofonfel: fott → fått - fonetiska fel: resturang → restaurang
147
Kvar på kursen
- Laboration 3
- Nästa vecka: – Tisdag 29/5 kl 10 -12 handledning i Chomsky – Torsdag 31/5 kl 10-15 redovisning – Söndag 3/6 deadline laboration 3 och fördjupningsuppgiften