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

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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

Beitragvon jens » Donnerstag 17. April 2008, 10:33

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???

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Montag 21. April 2008, 12:41

Wow, keiner was dazu zu sagen?

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Montag 21. April 2008, 13:22

Vielleicht sollte der Reguläre Ausdruck Quotes nur mit Quotes matchen und Doublequotes nur mit Doublequotes: ``"""eins "zwei'er drei"""``.
My god, it's full of CARs! | Leonidasvoice vs Modvoice

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder