问题描述
长期读者,但如果可能的话,第一次发帖者迫切希望得到一些帮助。我的最后一年项目即将到期,但一个重大错误阻碍了我。仅就某些情况而言,我遵循 Salim Zubair 对音乐歌词 Sentiment Analysis on Billboard 100 进行情感分析的示例。
我已将自己的数据集汇总在一起,并尝试使用英国图表进行类似操作。我已经走了这么远,但在从我的“歌词”列中获取关键字时,仍然遇到了绊脚石。
我会将示例代码放在下面,这是我的数据框:
Index Artist Song_Title Record_label Week_ID Year Country Weeks_at_number_one Lyrics Sentiment
0 1 Al Martino "Here in My Heart" Capitol 14/11/1952 1952 AMERICA 9 Here in my heart I'm alone,I'm so lonely\nHer... 0.055000
#Set the index of the dataframe to the WeekID. This sets us up to resample dataframe based on time
UK1s_df['Week_ID'] = pd.to_datetime(UK1s_df['Week_ID'],infer_datetime_format=True)
UK1s_df = UK1s_df.sort_values(by='Week_ID')
UK1s_df = UK1s_df.reset_index(drop=True)
#UK1s_df = UK1s_df.reset_index().set_index('Index')
UK1s_df = UK1s_df.set_index('Week_ID')
Resample daraframe lyrics by year. Get all the lyrics for every song for each year
lyrics_resample = UK1s_df['Lyrics'].resample('Y').sum()
lyrics_resample
#Use return_keywords function on lyrics_resample to get the top 20 keywords for each year
lyric_keywords = [return_keywords(x[1]) for x in lyrics_resample.items()]
lyric_keywords
它不断给我返回空数组,例如。 [[],[],[]]
# Function to preprocess text
def preprocess(text):
# Create Doc object
doc = nlp(text,disable=['ner','parser'])
# Generate lemmas
lemmas = [token.lemma_ for token in doc]
# Remove stopwords and non-alphabetic characters
a_lemmas = [lemma for lemma in lemmas
if lemma.isalpha() and lemma not in stopwords]
return ' '.join(a_lemmas)
#"""Extract Keywords from text"""
def return_keywords(texts):
xkeywords = []
values = keywords(text=preprocess(texts),split='\n',scores=True)
for x in values[:10]:
xkeywords.append(x[0])
try:
return xkeywords
except:
return "no content"
现在我的智慧已经结束,截止日期已经过去,所以提前感谢任何可以提供帮助的人。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)