从列表中删除标点符号
Remove punctuation from list
我正在为语义分析设置一些可用的数据。我有一个正在迭代的原始文本数据语料库。我打开数据,将其作为字符串读取,拆分为列表,并准备数据以在稍后的函数中构建到数据集中。然而,当我构建数据集时,我最常用的词最终变成了标点符号。在进一步处理数据之前,我需要从列表中删除所有标点符号。
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
单词被拆分成单独的字母。
我尝试过的任何其他方法都出错了。
代码中有几个错误:
str.split()
和str.translate()
不要原地修改。
str.translate()
需要映射。
修复:
def read_data(filepath):
with open(filepath, 'r') as f:
data = tf.compat.as_str(f.read())
data = data.translate(str.maketrans('', '', string.punctuation))
return data.split()
删除标点符号,可能会或可能不会做你想做的事,例如带连字符的单词将连接起来。您也可以确定要用 space.
替换的标点符号
我正在为语义分析设置一些可用的数据。我有一个正在迭代的原始文本数据语料库。我打开数据,将其作为字符串读取,拆分为列表,并准备数据以在稍后的函数中构建到数据集中。然而,当我构建数据集时,我最常用的词最终变成了标点符号。在进一步处理数据之前,我需要从列表中删除所有标点符号。
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
单词被拆分成单独的字母。 我尝试过的任何其他方法都出错了。
代码中有几个错误:
str.split()
和str.translate()
不要原地修改。str.translate()
需要映射。
修复:
def read_data(filepath):
with open(filepath, 'r') as f:
data = tf.compat.as_str(f.read())
data = data.translate(str.maketrans('', '', string.punctuation))
return data.split()
删除标点符号,可能会或可能不会做你想做的事,例如带连字符的单词将连接起来。您也可以确定要用 space.
替换的标点符号