1 | #!/usr/bin/env python
|
2 | from argparse import ArgumentParser
|
3 |
|
4 | from Levenshtein import distance as lvd
|
5 | from pyphonetics import Soundex
|
6 |
|
7 |
|
8 | if __name__ == '__main__':
|
9 | parser = ArgumentParser(description='show soundex and levenshtein')
|
10 | parser.add_argument('word1', help='first word')
|
11 | parser.add_argument('word2', help='second word')
|
12 | parser.add_argument('--normalize', '-n', action='store_true',
|
13 | help='normalize to uppercase before processing')
|
14 | args = parser.parse_args()
|
15 |
|
16 | if args.normalize:
|
17 | word1 = args.word1.upper()
|
18 | word2 = args.word2.upper()
|
19 | else:
|
20 | word1 = args.word1
|
21 | word2 = args.word2
|
22 |
|
23 | soundex = Soundex()
|
24 | sdx1 = soundex.phonetics(word1)
|
25 | sdx2 = soundex.phonetics(word2)
|
26 |
|
27 | print("%s: %s"%(word1, sdx1))
|
28 | print("%s: %s"%(word2, sdx2))
|
29 | print("Levenshtein: %d"%(lvd(word1, word2)))
|
30 | print("Phonetische: %d"%(lvd(sdx1, sdx2)))
|