python - 标记字符串列表以返回一个标记化单词列表

标签 python string list nlp tokenize

美好的一天,

我有一个函数应该能够降低和标记文本并返回标记。 这是下面的函数:

def preprocess_text(text):
""" A function to lower and tokenize text data """ 
# Lower the text
lower_text = text.lower()

# tokenize the text into a list of words
 tokens = nltk.tokenize.word_tokenize(lower_text)

return tokens

然后,我希望将该函数应用于名为 data 的实际文本数据,该数据是一个包含字符串的列表。我想迭代 data 中的每个字符串,并应用该函数来降低和标记文本数据。

最后,我希望将标记化单词附加到名为 tokenized_final 的最终列表中,该列表应该是包含标记化单词的最终列表。 这是下面的下一段代码:

# Final list with tokenized words
tokenized_final = []

# Iterating over each string in data
for x in data:
    # Calliing preprocess text function
    token = preprocess_text(x)

    tokenized_final.append(token)  

但是,当我完成所有这些操作并打印列表tokenized_final时。它输出一个包含其中列表的大列表。

print (tokeninized_final)

Output:
 [['pfe', 'bulls', 'have', 'reasons', 'on'],
 ['to', 'pay', 'more', 'attention'],
 ['there', 'is', 'still']]

当我想要的 tokenized_final 输出在一个列表中如下所示:

['pfe', 'bulls', 'have', 'reasons', 'on','to', 'pay','more', 'attention','there','is', 'still']

有什么方法可以纠正预处理函数并将其应用于数据以获得所需的输出。或者有什么办法可以做到这一点吗?... 在这里,我们将非常感谢您的帮助。 提前致谢

最佳答案

您只需展平结果列表即可:

# Final list with tokenized words
tokenized_final = []

# Iterating over each string in data
for x in data:
    # Calliing preprocess text function
    token = preprocess_text(x)

    tokenized_final.append(token) 

flattened_tokeninized_final = [i for j in tokeninized_final for i in j]

关于python - 标记字符串列表以返回一个标记化单词列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55203731/

相关文章:

java - 如何通过python在cgi网站上执行jar?

python 2.7 : test if characters in a string are all Chinese characters

javascript - 如何测试一个字符串是否等于另一个 javascript

一个列表中的 C# 不同类对象

python - 如何克隆列表以使其在分配后不会意外更改?

Python:新列表对现有列表中的重复元素进行分组

python - 替换Python文件中一行中的单词

python - 无法处理通过 scikit-image 在 OpenCV 中转换的图像

c - 如何使用 C 从字符串中获取 UTF-8 字符?

android - 如何将以下代码分解为android中的各个类