Я работаю над созданием некоторых полезных данных для семантического анализа. У меня есть корпус необработанных текстовых данных, которые я повторяю. Я открываю данные, читаю их как строку, разбиваю на список и подготавливаю данные для встраивания в набор данных в более поздней функции. Однако, когда я создаю набор данных, мои самые распространенные слова оказываются знаками препинания. Мне нужно удалить все знаки препинания из списка, прежде чем я буду обрабатывать данные дальше.
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)
Если я сделаю следующее:
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
Слова разбиты на отдельные буквы. Любые другие методы, которые я пробовал, привели к ошибке.