Ich arbeite an der Einrichtung einiger verwendbarer Daten für die semantische Analyse. Ich habe ein Korpus von Rohtextdaten, über die ich mich wiederhole. Ich öffne die Daten, lese sie als eine Zeichenkette, spalte sie in eine Liste und bereite die Daten vor, die in einer späteren Funktion in ein Dataset eingebaut werden sollen. Wenn ich jedoch den Datensatz erstelle, enden meine häufigsten Wörter als Interpunktion. Ich muss alle Satzzeichen aus der Liste entfernen, bevor ich die Daten weiter verarbeite.Interpunktion aus der Liste entfernen
import os
import collections
import string
import sys
import tensorflow as tf
import numpy as np
from six.moves import xrange
totalvocab = []
#Loop for: loop through all files in 'Data' directory
for subdir, dirs, files in os.walk('Data'):
for file in files:
filepath = subdir + os.sep + file
print(filepath)
#Function for: open file, convert input to string, split into list
def read_data(filepath):
with open(filepath, 'r') as f:
data = tf.compat.as_str(f.read()).split()
return data
#Run function on data, add file data to full data set.
filevocab = read_data(filepath)
totalvocab.extend(filevocab)
filevocab_size = len(filevocab)
print('File vocabulary size: %s' % filevocab_size)
totalvocab_size = len(totalvocab)
print('Total vocabulary size: %s' % totalvocab_size)
Wenn ich Folgendes tun:
def read_data(filepath):
with open(filepath, 'r') as f:
data = tf.compat.as_str(f.read())
data.translate(string.punctuation)
data.split()
return data
Die Wörter werden aufgeteilt in einzelne Buchstaben. Alle anderen Methoden, die ich versucht habe, sind fehlerhaft.
Vielen Dank! Das hat genau das getan, was ich brauchte. Und Sie sind auch richtig in der Vorhersage meiner zukünftigen Bedürfnisse, wie Bindestrich Wörter in meine Daten aufgenommen werden müssen. Wie würde ich erklären, welche Interpunktion ersetzt werden soll? – Sabolis