A little background information from my previous question:https://english.stackexchange.com/questions/318528/conflict-resolution-how-to-decide-if-two-words-are-generally-unmistakable

When a court reporter strokes 2 different words with the same keys, this creates a conflict. Normally, the reporter will fix the error later, but sometimes there is a way for the court reporting software to fix the error for you. This can be referred to as automatic conflict resolution.

My court reporting software's system for accomplishing this is by recording the parts-of-speech before and after the conflicting words.

So for example, if my two conflicting words are Tallahassee and shake and I type the following sentences it will look something like this:

I eat at Tallahassee / shake all the time. (Prep - Determiner)

I eat a Tallahassee / shake all the time. (Article - Determiner)

At first it will make me choose between the two, but after I chose it will then automatically add its defined part of speech in a database, so that if I type something like this...

I eat in Tallahassee every afternoon. (Prep - Determiner)

my computer should correctly pick "Tallahassee" since I already told it that "Tallahassee" occurs after a Prep and before a Determiner. The rule for this is simply pos word pos

I tested the practicality of this conflict-resolution system with 79 random conflicts using parts of ANC's pos-tagged corpus and Excel VBA.

  • As the data shows, only 10 out of the 79 conflicts showed up with 0 collisions total. This means that in the entirety of the corpus, none of these conflicts had conflicting parts-of-speech which had caused an error.

  • 36/79 conflicts showed up with 5 or less collisions.

  • 32/79 had 10 or more collisions

  • Each collision represents 1 guaranteed error of real-time translation given the pos word pos rule (per the parsed text from ANC, which was about 4.5 million words long)

These results aren't very good for the kind of real-time accuracy I hope to achieve. It would be much better if I could get at least 30/79 (as opposed to only 10) to have 0 "guaranteed errors."

How can I improve this system so that I will have fewer real-time translation errors?

My best thought is to change the rule from pos word pos to pos pos word pos in the case of a collision, but that's all I've got. I'm not very experienced on this subject, so I'm not necessarily opposed to the idea of starting over with something fresh.

  • 1
    $\begingroup$ 1. Can you edit your question to make it self-contained, so we can understand what you're trying to achieve (e.g., what conflict resolution means etc.) without having to click to read other web pages? 2. Even after reading the background, I can't tell what you are asking. (The title doesn't ask a question I can understand -- how do you want to choose? The body doesn't have any questions at all, only declarative statements.) This is a question-and-answer site, so it's important to articulate a focused, well-specified, answerable question. $\endgroup$ – D.W. May 1 '16 at 2:30
  • $\begingroup$ @D.W. Thank you for the constructive feedback. I hope I was able to make this question more readable and understandable. I took out the word n-gram which might've helped. I was just having difficulty expressing that a conflict doesn't have to involve two individual words, but they could be phrases as well. $\endgroup$ – bmende May 1 '16 at 4:51

There are many candidate approaches you could consider. I would suggest you be creative about what features you could use, to make predictions about which candidate is more likely to be the intended one.

One approach is to use a language model for the prevalence of different phrases. For instance, if $w, x$ are two words, define

$$r(x | w) = {P(w \; x) \over P(w) \times P(x)}.$$

(Here $P(w \; x)$ represents the prevalence of the 2-gram $w \; x$ in some large corpus, and $P(w)$ represents the prevalence of the 1-gram $w$ in the corpus.)

Now if the previous word is $w$ and the next word is either $x$ or $y$, compare $r(x | w)$ to $r(y | w)$ to see which is larger, and use that to resolve the conflict.

For example, comparing $r(\text{Tallahassee} | \text{at})$ to $r(\text{shake} | \text{at})$ using the Google n-gram viewer, we find that the former is much larger. In particular, the former is $1.2 \times 10^{-6}/(0.3 \times 8.5 \times 10^{-5}) \approx 0.05$, while the latter is $4.8 \times 10^{-8}/(0.3 \times 9.7 \times 10^{-4}) \approx 10^{-4}$, which is much smaller. We conclude that "Tallahassee" is much more likely to follow "at" than "shake", so the conflict should be resolved by the former.

You can generalize this to use any number of tokens of previous history (e.g., the previous 2 words instead of the previous 1 word).

Another approach would be to use something similar, but replace words with their parts of speech.

For instance, Google's n-gram viewer supports part-of-speech queries. You can quickly see that "ADP Tallahassee" (basically, a preposition followed by Tallahassee) is more common than "ADP shake", so "I eat at" is more likely to be followed by "Tallahassee" than "shake". In contrast, you can see that "DET shake" is more common than "DET Tallahassee"; so "a" (an article) is more likely be to be followed by "shake".

| cite | improve this answer | |
  • $\begingroup$ Many many thanks for this, it's enlightening. I like the idea of the prevalence formula, but I am having trouble understanding the purpose for calculating P(w)×P(x) and then dividing it from P(wx). Just comparing the results of P(wx) with P(yx) seems to lead to the same conclusion that doing the full formula does. $\endgroup$ – bmende May 1 '16 at 21:32
  • 1
    $\begingroup$ @bmende, I don't know what is best! You could experiment with several options. Now that you mention it, comparing $P(wx)/P(w)$ to $P(wy)/P(w)$ seems to make more sense than what I wrote. $\endgroup$ – D.W. May 1 '16 at 22:54

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.