I am working on deduping entities as well as problems involving expert system like decision making. I find that I often need to combine approximated probabilities.
For instance when handling duplicates I have two lists, $L_{1}$ and $L_{2}$, of words, $W_i$, with different lengths. I would like to do an element-wise compare of the lists and hypothesize that the most similar words have the same meaning.
The comparison gives a list of scored pairs $(W_{L_{1i}}, W_{L_{2i}}, w_{i})$... $(W_{L_{1j}}, W_{L_{2j}}, w_{j})$ with some orphans (words in a sequence with no match in the other sequence, possibly weight zero) where the scores fall in the range [0, 1] approximate the probability that elements in the pair are the same. Finally, I would like to compute a score to reflect the overall similarity of the sequences.
Is there a way to combine the approximated probabilities to give a meaningful result?
Update
Essentially to goal is to approximate $p(H|E_1E_2...E_n)$ where $E_i$ is probability that scored pair $i$ is a match. There are only two hypotheses: $H_S$ - that the lists are essentially the same and $H_D$ - that the lists are essentially different. Assuming the conditional independence of events (which is totally wrong but helpful) $p(H_S|E_1E_2...E_n) =$
$$\frac{{p\left( {{E_1}|{H_S}} \right) \times p\left( {{E_2}|{H_S}} \right) \times ...p\left( {{E_n}|{H_S}} \right)}}{{p\left( {{E_1}|{H_S}} \right) \times p\left( {{E_2}|{H_S}} \right) \times ...p\left( {{E_n}|{H_S}} \right) + p\left( {{E_1}|{H_D}} \right) \times p\left( {{E_2}|{H_D}} \right) \times ...p\left( {{E_n}|{H_D}} \right)}}$$
or
$$\frac{{p\left( {{E_1}|{H_S}} \right) \times p\left( {{E_2}|{H_S}} \right) \times ...p\left( {{E_n}|{H_S}} \right) \times p\left( {{H_S}} \right)}}{{p\left( {{E_1}|{H_S}} \right) \times p\left( {{E_2}|{H_S}} \right) \times ...p\left( {{E_n}|{H_S}} \right) \times p\left( {{H_S}} \right) + p\left( {{E_1}|\neg {H_S}} \right) \times p\left( {{E_2}|\neg {H_S}} \right) \times ...p\left( {{E_n}|\neg {H_S}} \right) \times \left( {1 - p\left( {{H_S}} \right)} \right)}}$$
You have 2 lists of words to compare. For each list, you compare each element in the list to each element in the other list, and use the highest weight (meaning most similar) calculated for each word. (Right?)
For example,
(**Please do not be confused by the Standard Deviation above being represented as a %. Since we are averaging percentages, I formatted the Std Dev as percents)
If I wanted a quick glance at similarity, the first thing I would want to know is the Average % similarity. Then, to get a better idea of how each set is distributed (how much each item varies from other items), I would want to know the standard deviation.
In order to create an overall score function, you need to first completely understand how the average and the standard deviation works, and then tailor your function based on that and how you would score something.
For example, if your possible scores are 1 (meaning very different) and 5 (meaning very similar), your function may look something like this:
Score 5:
if [(List #1 average + List #2 average)/2]>80%
AND
[(List #1 StdDev + List #2 StdDev )/2]<20%
Score 4:
if [(List #1 average + List #2 average)/2]>60%
AND
[(List #1 StdDev + List #2 StdDev )/2]<30%
Score 3:
if [(List #1 average + List #2 average)/2]>40%
AND
[(List #1 StdDev + List #2 StdDev )/2]<40%
Score 2:
if [(List #1 average + List #2 average)/2]>20%
AND
[(List #1 StdDev + List #2 StdDev )/2]<60%
Score 1:
else Score = 1
Of course, you must play around with the average and std dev percentage values that you plug in, in order to create a function that reflects what you prefer. You also may want to create a score from 1 to 10, or 1 to 100, instead of the simplified 1 to 5 scale.