Heim  >  Artikel  >  Backend-Entwicklung  >  Python zählt, wie oft ein Wort vorkommt_python

Python zählt, wie oft ein Wort vorkommt_python

不言
不言Original
2018-04-04 16:18:024996Durchsuche

Vor kurzem gab mir mein Manager die Aufgabe, die Häufigkeit jedes Worts in einer Datei zu zählen und die fünf am häufigsten vorkommenden Wörter aufzulisten. Dieser Artikel bietet Ihnen eine Analyse der Idee, die Anzahl der Wörter in Python zu zählen. Freunde, die es benötigen, können darauf verweisen

Titel:

Zählen Sie in einer Datei, wie oft jedes Wort vorkommt. Listen Sie die 5 am häufigsten vorkommenden Wörter auf.

Vorwort:

Diese Frage wird häufig in praktischen Anwendungsszenarien verwendet, beispielsweise in Statistiken über die hochrangigen Studenten, die in der erschienen sind Bei den CET-4- und CET-6-Prüfungen erinnere ich mich, dass Li Xiaolai im Laufe der Jahre ein Bestseller-Buch über das Auswendiglernen von Wörtern veröffentlichte, das bei Schülern sehr beliebt war. Dies ist ein typisches Szenario, in dem Programmierkenntnisse zur Lösung realer Probleme eingesetzt werden. Darüber hinaus basieren diese Wortwolkeneffekte bei der Datenanalyse im Wesentlichen auf Worthäufigkeitsstatistiken, um die Schriftgröße anzupassen. Wenn Sie das Wissen in Python geschickt nutzen können, um Probleme zu lösen, bedeutet dies, dass Sie wirklich mit Python beginnen.

Analyse

Diese Frage untersucht hauptsächlich die folgenden Aspekte des Wissens:

1. Wie man richtig liest Dateien schreiben

Um Dateien in Python zu lesen und zu schreiben, können Sie die integrierte Funktion open() verwenden, und die Funktion open weist bestimmte Unterschiede zwischen Python2 und Python3 auf kann das Codierungsformat zum Lesen und Schreiben von Dateien angeben. Um mit Python 2 und 3 kompatibel zu sein, verwenden wir normalerweise die Open-Funktion unter dem io-Modul. Sie können den Unterschied herausfinden zwischen ihnen und fördern Sie aktive Lernfähigkeiten und die Gewohnheit, Informationen zu überprüfen.

Ein weiterer Punkt ist, dass der Dateideskriptor nach dem Lesen und Schreiben der Datei geschlossen werden muss. Zusätzlich zur Verwendung der try...except...finally-Syntax können wir auch die elegantere with... verwenden. .as-Syntax, um die Datei automatisch zu schließen.

2. So sortieren Sie Daten

Die Sortierfunktion ist eine häufig verwendete integrierte Funktion und ihre Verwendung ist auch sehr leistungsfähig, da sie Schlüsselparameter angeben kann Führen Sie eine benutzerdefinierte Sortierung durch, was bedeutet, dass Sie nicht nur Zahlen und Buchstaben, sondern auch Listen, Wörterbücher und benutzerdefinierte Objekte sortieren können. Sie müssen der Sortierfunktion lediglich die Sortierregeln mitteilen, z. B. Für ein Personenobjekt kann ich Sortieren Sie es nach Alter oder Größe und Gewicht, daher ist diese Funktion sehr flexibel. Darüber hinaus gibt es eine integrierte Sortiermethode für Listenobjekte. Wenn Sie den Unterschied zwischen list.sort und sorted klar unterscheiden können, können Sie dies bereits tun es flexibel.

3. Verwendung des Wörterbuchdatentyps

Um Worthäufigkeitsstatistiken zu erstellen, ist die Verwendung eines Wörterbuchs zweifellos der am besten geeignete Datentyp Wörterbuch, und die Häufigkeit, mit der ein Wort vorkommt, wird als Wert verwendet. Der Wert des Wörterbuchs zeichnet praktischerweise die Häufigkeit jedes Wortes auf. Das Wörterbuch ähnelt unserem Telefonbuch, wobei jedem Namen eine Telefonnummer zugeordnet ist. Darüber hinaus besteht das größte Merkmal des Wörterbuchs darin, dass seine Abfragegeschwindigkeit sehr hoch ist. Im Idealfall beträgt die Zeitkomplexität O(1). Wenn Sie mehr über Wörterbücher erfahren möchten, empfehle ich die Lektüre dieses Artikels https://www.laurentluce.com/posts/python-dictionary-implementation/

4. Anwendung regulärer Ausdrücke

Für die Text- und Zeichenfolgenverarbeitung sind reguläre Ausdrücke einfach ein Artefakt, sei es für das Daten-Crawling oder die Datenbereinigung Natürlich gibt es reguläre Ausdrücke nicht nur in Python, sie werden von allen Programmiersprachen unterstützt. Wir müssen nicht nur reguläre Ausdrücke lernen, sondern auch ihre API. Nur wenn wir mit der API vertraut sind, können wir sie auf tatsächliche Szenarien anwenden. Ich empfehle einen Artikel über reguläre Ausdrücke: http://www.cnblogs.com/huxi/archive/2010/07/04/1771073.html Außerdem habe ich festgestellt, dass einige Studenten die Jieba-Wortsegmentierungsbibliothek eingeführt haben Die Segmentierung chinesischer Wörter durch die Bibliothek ist sehr nützlich. Wenn Sie interessiert sind, können Sie sich darüber informieren.

Umsetzung

Nach der Analyse können wir es tatsächlich sehr schnell umsetzen. Wenn wir also eine Anforderung erhalten, müssen wir zunächst die Anforderung klären und darüber nachdenken, mit welchen Technologien sie erreicht werden kann, und dann mit dem Schreiben von Code beginnen. Tatsächlich verbringen wir bei der Arbeit weniger als die Hälfte der Zeit mit dem Schreiben von Code.

# -*- coding:utf-8 -*-
import io
import re
class Counter:
 def __init__(self, path):
 """
 :param path: 文件路径
 """
 self.mapping = dict()
 with io.open(path, encoding="utf-8") as f:
  data = f.read()
  words = [s.lower() for s in re.findall("\w+", data)]
  for word in words:
  self.mapping[word] = self.mapping.get(word, 0) + 1
 def most_common(self, n):
 assert n > 0, "n should be large than 0"
 return sorted(self.mapping.items(), key=lambda item: item[1], reverse=True)[:n]
if __name__ == '__main__':
 most_common_5 = Counter("importthis.txt").most_common(5)
 for item in most_common_5:
 print(item)

Druckergebnis:

('ist', 10)
('besser', 8)
('als', 8)
('der', 6)
('zu', 5)

Zusammenfassung

Wenn ich mir Ihren Code anschaue, sind viele Codes immer noch unregelmäßig benannt (es wird empfohlen, PEP8 zu lesen) und das Code-Layout ist verwirrend (es ist schwer zu lesen, es wird empfohlen, es zu lesen). Verwenden Sie Pycharm zur Formatierung. Es gibt auch viele Codes, deren Implementierungsmethoden sehr kompliziert aussehen (je komplexer der Code, desto mehr Fehler weist er normalerweise auf). Natürlich ist die Implementierungsmethode nicht die einzige.

Zum Beispiel stellt das Python-Modul selbst eine Collections.Counter-Klasse bereit, die von der dict-Klasse erbt und für Statistiken verwendet wird. Ich habe festgestellt, dass einige Schüler diese Klasse verwenden, um sie zu implementieren . Der von mir implementierte Counter ist in der Tat der Herstellung von Rädern sehr ähnlich, wenn es um vorgefertigte Dinge geht Räder selbst herzustellen, es sei denn, Sie trauen sich besser zu. Sie können auch darüber nachdenken, was Sie tun würden, wenn Python das Counter-Tool nicht bereitstellen würde.

Darüber hinaus stellt dieses Modul auch ein geordnetes Wörterbuchobjekt OrderedDict bereit, das uns manuelle Sortiervorgänge ersparen kann. Abschließend empfehle ich Ihnen, alle oben genannten Inhalte zu studieren und zusammenzufassen. Wenn Sie 100 Tage durchhalten können, werden Sie meines Erachtens gute Python-Kenntnisse haben.

Verwandte Empfehlungen:

Python implementiert die zweidimensionale Array-Ausgabe als Bild_Python

Python implementiert die Eingabe von Instanzattributen. Überprüfen Sie

Das obige ist der detaillierte Inhalt vonPython zählt, wie oft ein Wort vorkommt_python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn