2016-05-18 5 views
2

Ich versuche, Schnittmenge zwischen zwei Zeichenfolgen mit Python zu überprüfen. ich diese Funktion definiert:Überprüfen Sie den Schnittpunkt zwischen zwei Zeichenfolgen in Python

def check(s1,s2): 
    word_array = set.intersection(set(s1.split(" ")), set(s2.split(" "))) 
    n_of_words = len(word_array) 
    return n_of_words 

Es funktioniert mit einigem Probe-String, aber in diesem speziellen Fall:

d_word = "BANGKOKThailand" 
nlp_word = "Despite Concerns BANGKOK" 

print(check(d_word,nlp_word)) 

I 0 bekam Was bin ich?

+0

Sie teilen auf Leerzeichen, es gibt n Ospaces in d_word, was erwarten Sie? – lejlot

+0

Ops, du hast Recht. Ich denke, dass ich meine Aufgabe auf diese Weise nicht erfüllen kann, vielleicht muss ich es mit Regex versuchen. Was denken Sie? –

+0

Regex, oder einige erweiterte Worttrennungsmethoden aus NLP – lejlot

Antwort

0

Set eins enthält einzelne Zeichenfolge, setzen Sie zwei 3 Zeichenfolgen, und Zeichenfolge "BANGKOKThailand" ist nicht gleich der Zeichenfolge "BANGKOK".

0

ich sehe zwei Fehler könnte-sein:

n_of_words = len(array) 

n_of_words = len(word_array) 

und

d_word = "BANGKOKThailand" 

einen Raum fehlen sollte in-between als

"BANGKOK Thailand" 

Die Korrektur dieser zwei Änderungen gab mir ein Ergebnis von 1.

+0

Ich reparierte das erste, aber leider hat "BANGKOKThailand" keinen Platz (ich muss es nehmen, wie es ist, es ist in einer txt-Datei definiert, die ich versuche zu analysieren) –

+0

Ich kann sehen, dass Sie die Variable word_array ebenfalls korrigiert haben Freut mich zu sehen, dass es jetzt funktioniert! – RSilNav

+0

Leider funktioniert es nicht, ich kann das Leerzeichen nicht hinzufügen. Dies ist ein automatischer Algorithmus für Textverarbeitung und das ist ein besonderer Fall, den ich abdecken sollte :( –