Angesichts einer Liste der vollständigen Namen (Vorname + Nachname), wie finden Sie die Häufigkeit, dass die Namen in einem Text Artikel kommen?Vergleichen Sie zwei Wörter (vollständiger Name) zu einem Artikel Text in Python
Ich versuche eine effiziente Möglichkeit zu finden, den 'Vornamen' und 'Nachnamen' einer Person mit einem Textkörper zu vergleichen. In dieser Situation ist der Text ein Nachrichtenartikel und die Namen stammen von australischen Politikern.
Die Herausforderung besteht darin, den Nachrichtenartikel in einzelne Wörter aufzuteilen und dann den Vornamen & & Nachnamen mit den Wörtern im Artikel zu vergleichen. Ich habe daran gedacht, die Namen in eine JSON-Zeichenkette umzuwandeln, aber ich denke, das wäre ineffizient und würde dem effizienten Lernen entgegenstehen. Ich habe mit der Aufzählungsfunktion gespielt, ohne Glück. Die folgende Funktion funktioniert, wenn die Nachnamen aus "politicianName.txt" entfernt werden, aber nicht mit den Vornamen und Nachnamen funktionieren.
def getNames(articletext):
politicianName = open("politicianName.txt").read().split('\n')
#for name in politicianName: #test the names read from file
# print name
wordList = articletext.split()
for word in wordList:
if word in politicianName and word.isalnum():
print word
article = 'Jacinta Allan this is an articletext scraped with urllib2'
getNames(article)
'''
#The enumerate example I have been testing and playing around with
mylist = [1, 6, 6, 4, 2, 3]
for i, j in enumerate(mylist[:-1]):
if j == mylist[i+1]:
mylist[i] = "foo"
mylist[i+1] = "foo"
print mylist
'''
politicianName.txt (kurz)
Jacinta Allan
Daniel Andrews
Neil Angus
Louise Asher
Brad Battin
Häufigkeit des Namens, um Wörter oder die Häufigkeit der Namen relativ zueinander ? –
Der effizienteste Weg hängt von der Relation der Menge des zu suchenden Textes und der Anzahl der zu suchenden Namen ab. Ich würde empfehlen, über die Namen zu iterieren, einen regulären Ausdruck für jeden zu erzeugen und finder zu zählen() – sphere
Das Hinzufügen des Vornamens macht nur Dinge kompliziert. Ein Politiker würde niemals ohne den Nachnamen im Text erwähnt werden. Ich kann mir nicht vorstellen zu lesen "Jacinta hat eine Rechnung übergeben ...". Mein Punkt ist, suche nur nach dem Nachnamen. –