Seite 1 von 1

Zum verbessern: zusammen und einzelne wörter finden...

Verfasst: Donnerstag 17. April 2008, 10:33
von jens
Um die PyLucid suche zu verbessern, dachte ich mir, wäre es nicht schlecht, das man Wörter auch zusammen suchen lassen kann...

Hier der Code:

Code: Alles auswählen

import re

def get_phrases(text):
    print "text:", text

    # get all coherent words
    phrases = re.findall(r"['\"](.*?)['\"]", text)
    print "phrases:", phrases

    # remove all coherent words
    for phrase in phrases:
        text = text.replace(phrase, "")

    print "rest: >>>%s<<<" % text
    # split the words
    words = [i for i in text.split(" ") if i.strip(' \'"')]

    # merge
    phrases = phrases + words

    print "phrases:", phrases
    return phrases

get_phrases('"zu sammen" und einzeln')
print "-"*79
get_phrases("'zu sammen' und einzeln")
print "-"*79
get_phrases("'zu sammen1' einzeln \"zu sammen2\"")
print "-"*79
get_phrases("ein's zwei drei")
Ausgabe:

Code: Alles auswählen

text: "zu sammen" und einzeln
phrases: ['zu sammen']
rest: >>>"" und einzeln<<<
phrases: ['zu sammen', 'und', 'einzeln']
-------------------------------------------------------------------------------
text: 'zu sammen' und einzeln
phrases: ['zu sammen']
rest: >>>'' und einzeln<<<
phrases: ['zu sammen', 'und', 'einzeln']
-------------------------------------------------------------------------------
text: 'zu sammen1' einzeln "zu sammen2"
phrases: ['zu sammen1', 'zu sammen2']
rest: >>>'' einzeln ""<<<
phrases: ['zu sammen1', 'zu sammen2', 'einzeln']
-------------------------------------------------------------------------------
text: ein's zwei drei
phrases: []
rest: >>>ein's zwei drei<<<
phrases: ["ein's", 'zwei', 'drei']
Macht eigentlich genau das was es soll... Doof finde ich, das die Reihenfolge der Teile hinterher nicht mehr die selbe ist. Jemand eine Idee, wie man das anders/besser lösen kann???

Verfasst: Montag 21. April 2008, 12:41
von jens
Wow, keiner was dazu zu sagen?

Verfasst: Montag 21. April 2008, 13:22
von Leonidas
Vielleicht sollte der Reguläre Ausdruck Quotes nur mit Quotes matchen und Doublequotes nur mit Doublequotes: ``"""eins "zwei'er drei"""``.