def __disambiguate_proper_names_2(self, docs, lexicon):
        """ Kustutame üleliigsed mitte-pärisnimeanalüüsid: 
            -- kui lause keskel on pärisnimeanalüüsiga sõna, jätamegi alles vaid
               pärisnimeanalyys(id);
            -- kui lause alguses on pärisnimeanalüüsiga s6na, ning pärisnimelemma
               esineb korpuses suurema sagedusega kui 1, jätamegi alles vaid
               pärisnimeanalyys(id); vastasel juhul ei kustuta midagi;
        """
        for doc in docs:
            for sentence in doc.divide( layer=WORDS, by=SENTENCES ): 
                sentencePos = 0 # Tavaline lausealgus
                for i in range(len(sentence)):
                    word = sentence[i]
                    #  Täiendavad heuristikud lausealguspositsioonide leidmiseks:
                    #  1) kirjavahemärk, mis pole koma ega semikoolon, on lausealgus:
                    if all([ a[POSTAG] == 'Z' for a in word[ANALYSIS] ]) and \
                       not re.match('^[,;]+$', word[TEXT]):
                        sentencePos = 0
                        continue
                    #
                    # Vaatame ainult mitmeseid s6nu, mis sisaldavad ka p2risnimeanalyysi
                    #
                    if len(word[ANALYSIS]) > 1 and \
                       any([ a[POSTAG] == 'H' for a in word[ANALYSIS] ]):
                        if sentencePos != 0:
                            # 1) Kui oleme lause keskel, valime alati vaid nimeanalyysid 
                            #    (eeldades, et nyyseks on järgi jäänud vaid korrektsed nimed)
                            toDelete = []
                            for analysis in word[ANALYSIS]:
                                if analysis[POSTAG] not in ['H', 'G']:
                                    toDelete.append( analysis )
                            for analysis in toDelete:
                                word[ANALYSIS].remove(analysis)
                            #if toDelete:
                            #    self.__debug_print_word_in_sentence_str(sentence, word)
                        else:
                            # 2) Kui oleme lause alguses, siis valime ainult nimeanalyysid
                            #    juhul, kui vastav lemma esines ka mujal (st lemma esinemis-
                            #    sagedus on suurem kui 1);
                            # Kas m6ni lemma esineb p2risnimede leksikonis sagedusega > 1 ?
                            hasRecurringProperName = False
                            toDelete = []
                            for analysis in word[ANALYSIS]:
                                if analysis[ROOT] in lexicon and lexicon[analysis[ROOT]] > 1:
                                    hasRecurringProperName = True
                                if analysis[POSTAG] not in ['H', 'G']:
                                    toDelete.append( analysis )
                            if hasRecurringProperName and toDelete:
                                # Kui p2risnimi esines ka mujal, j2tame alles vaid p2risnime-
                                # analyysid:
                                for analysis in toDelete:
                                    word[ANALYSIS].remove(analysis)
                                #self.__debug_print_word_in_sentence_str(sentence, word)
                    sentencePos += 1
Kustutame üleliigsed mitte-pärisnimeanalüüsid: 
            -- kui lause keskel on pärisnimeanalüüsiga sõna, jätamegi alles vaid
               pärisnimeanalyys(id);
            -- kui lause alguses on pärisnimeanalüüsiga s6na, ning pärisnimelemma
               esineb korpuses suurema sagedusega kui 1, jätamegi alles vaid
               pärisnimeanalyys(id); vastasel juhul ei kustuta midagi;