2

作为一名语言学家和 python 初学者,我想在我自己的(德语)推文语料库中找到单词搭配。如何将来自 pandas 数据框的推文(只有一列 = 推文)转换为单词列表,然后才能使用 nltk-collocation-finder?我的版本(如下)创建了一个字母列表而不是单词列表,只是给了我字母搭配。任何建议都会很棒!

这是我到目前为止所拥有的:

import pandas as pd
data = pd.read_csv("tweets.csv")

import regex as re
def cleaningTweets(twt):
    twt = re.sub('@[A-ZÜÄÖa-züäöß0-9]+', '', twt)
    twt = re.sub('#', '', twt)
    twt = re.sub('https?:\/\/\S+', '', twt)
    return twt

df = pd.DataFrame(data)

df.tweet = df.tweet.apply(cleaningTweets)
df.tweet = df.tweet.str.lower()

from textblob_de import TextBlobDE as TextBlob
df["tweet_tok"] = df["tweet"].apply(lambda x: " ".join(TextBlob(x).words))

all_words = ' '.join([text for text in df.tweet_tok])
tweettext = nltk.Text(all_words)
4

1 回答 1

1

如果您所追求的只是一个句子中的单词列表,我认为您正在寻找.splitPythonstring对象上的方法。Pandas 有一个内置方法可以将字符串拆分应用于 DataFrame(或 Series)中的每一行,并在需要时扩展到各个列。

例如,试试这段小代码,看看它是否符合您的要求:

import pandas as pd
strings_to_split = [
    "i like to be beside the sea",
    "me too"
]
pd.Series(strings_to_split).str.split(expand=True)

几点注意事项:

  • 只需在空格上调用.split()拆分,但您可以传递任何字符来执行拆分,例如.split('a')
  • 根据下面评论中的问题,传递expand=False以将列表保留在每一行中,而不是扩展到列
于 2021-04-04T10:22:38.623 回答