我是python和机器学习的新手, 我正在训练聊天机器人
我在excel文件(.xlsx)中收集(或编写了)大量可能的输入,我将使用LSTM和IOBES标签训练我的数据集,我将在这里做同样的事情: https://www.depends-on-the-definition.com/guide-sequence-tagging-neural-networks-python/
在链接中,您可以看到数据集的快照,我想使我的数据集像这样。
我的问题是:
1-是否可以将句子拆分为单词,以便对单词进行标记? (Excel中有一个工具,我试过了,但是很累)。 2-我试图将文件转换为.cvs,但是遇到了很多问题(因为我的数据集不是英语,所以是utf-8),是否还有另一个扩展名?
非常感谢您的帮助和建议。 谢谢
答案 0 :(得分:0)
您可以使用pandas
方法pd.read_excel('your_file.xlsx',sep=',')
来避免将文件转换为csv。
要将句子拆分成单词,您需要使用自然语言处理(NLP)python程序包,例如nltk
和英语词汇。这将考虑标点符号,引号等。
答案 1 :(得分:0)
我正在使用openpyxl将excel文件直接加载到内存中。例如,
from openpyxl import load_workbook
trainingFile = './InputForTraining/1.labelled.Data.V2.xlsx'
trainingSheet = 'sheet1'
TrainingFile = load_workbook(trainingFile)
sheet = TrainingFile[trainingSheet]
然后,您不必将excel转换为csv。有时候,如果数据结构很复杂,那么转换就不是那么简单。您仍然必须编写一些代码来形成结构。 如果您的句子很干净,则拆分句子非常容易。 Python具有功能split(),可根据空间将字符串拆分为单词列表。例如,
wordsList = yourString.split()
但是您需要注意标点符号。通常在一个字之后。您可以使用regEx将标点符号拆分为一个单词。例如,
pat = re.compile(r"([.,;:()/&])")
return_text = pat.sub(" \\1 ", return_text)
wordList = return_text.split()
因此[。,; ::()/&]将与单词分开。 或者,甚至根本不需要,甚至可以从句子中删除标点符号。并将其替换为空间。例如,
return_text = re.sub("[^a-zA-Z\s1234567890]+", ' ', text).strip().rstrip()
然后将仅保留字母和数字。 .strip()。rstrip()正在删除多余的空格。