Ich wollte die Trends der Artificial Intelligence Society (JSAI2020) untersuchen, an denen ich neulich teilgenommen habe, und habe Word Cloud aus dem Vortragstitel des Programms erstellt.
Die Häufigkeit des Auftretens von Wörtern in einem Satz wird überprüft, und die Größe der Zeichen wird entsprechend der Häufigkeit geändert. Möglicherweise haben Sie eine Wortwolke gesehen, die aus Tweets und visualisierten Wörtern erstellt wurde, die viel murmeln.
Ich habe die JSAI2020-Konferenzbeiträge von hier heruntergeladen, eine Datei mit dem Namen index.html geöffnet und die Sitzungsliste in Notepad kopiert.
Wenn das Programm als PDF veröffentlicht ist, können Sie den Text wie folgt extrahieren.
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter
from pdfminer.converter import TextConverter
from pdfminer.layout import LAParams
from pdfminer.pdfpage import PDFPage
input_path = './Program.pdf'
output_path = 'Program.txt'
manager = PDFResourceManager()
with open(output_path, "wb") as output:
with open(input_path, 'rb') as input:
with TextConverter(manager, output, codec='utf-8', laparams=LAParams()) as conv:
interpreter = PDFPageInterpreter(manager, conv)
for page in PDFPage.get_pages(input):
interpreter.process_page(page)
Entfernt Informationen, die keine Vorlesungen sind, wie Datum und Moderator aus dem Text. Da der Moderator von () umgeben war, wurden die Zeichen in () aus gelöscht. Reguläre Ausdrücke werden verwendet, um die Zeichen in () und die Uhrzeit / das Datum anzugeben.
import re
with open('Program.txt', mode='rt', encoding='utf-8') as fo:
Program = fo.read()
#[]Zu()Umstellung auf
Program = Program.replace("[", "(")
Program = ProgramP.replace("]", ")")
#()Löschen Sie die in eingeschlossenen Zeichen(In diesem Moment[]Der obige Code ist erforderlich, da er nicht gelöscht werden kann.)
Program = re.sub(r'\([^)]*\)', '', Program)
#Uhrzeit / Datum löschen
Program = re.sub(r'((0?|1)[0-9]|2[0-3])[:][0-5][0-9]?', '', Program)
Program = re.sub(r'2020([0-1]?[0-9])Mond([0-3]?[0-9])Tag?', '', Program)
Program = re.sub('Zeit / Ort', '', Program)
Program = re.sub('Session', '', Program)
Program = re.sub('Ankündigungsliste', '', Program)
Program = re.sub('Tagungsort', '', Program)
with open('Program_new.txt', 'w') as f:
print(Program, file=f)
from matplotlib import pyplot as plt
from wordcloud import WordCloud
with open('Program_new.txt', mode='rt', encoding='utf-8') as fo:
cloud_text = fo.read()
#font_Pfad gibt die japanische Schriftart auf Ihrem Terminal an
word_cloud = WordCloud(width=640, height=480, font_path="/System/Library/AssetsV2/com_apple_MobileAsset_Font6/c7c8e5cb889b80fff0175bf138a7b66c6f027f21.asset/AssetData/ToppanBunkyuMidashiGothicStdN-ExtraBold.otf").generate(cloud_text)
word_cloud.to_file('wordcloud4.png')
plt.imshow(word_cloud)
plt.axis('off')
plt.show()
Recommended Posts