--- title: Title keywords: fastai sidebar: home_sidebar summary: "summary" ---

Preprocessing

make_df[source]

make_df(csv_name)

Use jieba, create data frame.

affirmative = make_df("data/affirmative.csv")
Building prefix dict from the default dictionary ...
Loading model from cache C:\Users\LIJIAX~1\AppData\Local\Temp\jieba.cache
Loading model cost 1.083 seconds.
Prefix dict has been built succesfully.
affirmative.head()
Group Students Content text
0 第1组 正三 慕课将分布于世界各地的最优质的教育资源聚集到一起,让任何有学习愿望的人能够低成本的,通常是免... 慕课 将 分布 于 世界各地 的 最 优质 的 教育资源 聚集 到 一起 , 让 任何 有 ...
1 第1组 正二 在慕课发展过程中的现阶段,中国最大的慕课平台icourse163的用户人数突破100万,与其... 在 慕课 发展 过程 中 的 现阶段 , 中国 最大 的 慕课 平台 icourse163 ...
2 第1组 正一 研究发现,在慕课融入的课堂学习中,学习者情感体验丰富,知识技能以及元认知能力得到提升,思想观... 研究 发现 , 在 慕课 融入 的 课堂 学习 中 , 学习者 情感 体验 丰富 , 知识 ...
3 第1组 正三 慕课在保证教育质量的同时,降低提供教育的成本,给社会带来的憧憬。任何人任何时候再任何地方,都... 慕课 在 保证 教育 质量 的 同时 , 降低 提供 教育 的 成本 , 给 社会 带来 的...
4 第1组 正一 对方反一辩友也说是可能出现的欢快气氛,传统课堂集体聆听教师单方面赐予的知识,这难道不是一种容... 对方 反一 辩友 也 说 是 可能 出现 的 欢快 气氛 , 传统 课堂 集体 聆听 教师 ...
negative = make_df("data/negative.csv")
negative.head()
Group Students Content text
0 第1组 反一 通俗地说,慕课是大规模的网络开放课程。1.传统课堂中可能出现的欢快的气氛,慕课没有;2.传统... 通俗 地说 , 慕课 是 大规模 的 网络 开放 课程 。 1 . 传统 课堂 中 可能 出...
1 第1组 反一 通俗地说,慕课是大规模的网络开放课程。我方观点为,慕课不能代替传统课堂1.传统课堂中可能出现... 通俗 地说 , 慕课 是 大规模 的 网络 开放 课程 。 我方 观点 为 , 慕课 不能 ...
2 第1组 反一 正一观点中有这样一句话“相比在线交流,学习者偏好面对面的交流讨论”这不正是传统课堂所能给予的吗 正一 观点 中有 这样 一句 话 “ 相比 在线 交流 , 学习者 偏好 面对面 的 交流 ...
3 第1组 反一 正二给出的数字中,说明不了慕课的替代性,毕竟中国学生庞大的基数在这。 正二 给出 的 数字 中 , 说明 不了 慕课 的 替代性 , 毕竟 中国 学生 庞大 的 ...
4 第1组 反一 正一说的独立思考问题,传统课堂的弹性较大,课堂设计掌握在老师学生手中,可以做到因材施教,针对... 正一说 的 独立思考 问题 , 传统 课堂 的 弹性 较大 , 课堂 设计 掌握 在 老师 ...

LDA

chinese_word_cut[source]

chinese_word_cut(mytext)

print_top_words(model, feature_names, n_top_words)

get_custom_stopwords[source]

get_custom_stopwords(stop_words_file, encoding='utf-8')

stopwords = get_custom_stopwords("data/stopwords.txt", encoding='utf-8') # HIT停用词词典
max_df = 0.9 # 在超过这一比例的文档中出现的关键词(过于平凡),去除掉。
min_df = 5 # 在低于这一数量的文档中出现的关键词(过于独特),去除掉。
n_features = 1000 # 最大提取特征数量
n_top_words = 20 # 显示主题下关键词的时候,显示多少个
col_content = "text" # 说明其中的文本信息所在列名称

lda_on_chinese_articles_with_param[source]

lda_on_chinese_articles_with_param(df, n_topics, col_content, stopwords, n_features, max_df, min_df, n_top_words)

lda_on_chinese_articles[source]

lda_on_chinese_articles(df, n_topics)

lda, tf, vect = lda_on_chinese_articles(df = affirmative, n_topics = 3)
pyLDAvis.sklearn.prepare(lda, tf, vect)
D:\install\miniconda\lib\site-packages\sklearn\feature_extraction\text.py:300: UserWarning: Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens ['lex', '①①', '①②', '①③', '①④', '①⑤', '①⑥', '①⑦', '①⑧', '①⑨', '①a', '①b', '①c', '①d', '①e', '①f', '①g', '①h', '①i', '①o', '②①', '②②', '②③', '②④', '②⑤', '②⑥', '②⑦', '②⑧', '②⑩', '②a', '②b', '②d', '②e', '②f', '②g', '②h', '②i', '②j', '③①', '③⑩', '③a', '③b', '③c', '③d', '③e', '③f', '③g', '③h', '④a', '④b', '④c', '④d', '④e', '⑤a', '⑤b', '⑤d', '⑤e', '⑤f', 'li', 'ng', 'zxfitl'] not in stop_words.
  'stop_words.' % sorted(inconsistent))
Topic #0:
学习 学生 交流 课程 学习者 视频 时间 网络 讨论 进行 教师 课堂 自主 知识 教学 兴趣 实现 促进 合作 高等教育
Topic #1:
教育 发展 传统 大学 已经 取代 我国 不能 社会 课堂 问题 不是 认为 时代 现在 目前 技术 国家 高等教育 高校
Topic #2:
学生 课堂 传统 学习 教师 老师 教学 进行 方式 过程 视频 知识 课程 需要 一种 不是 问题 时间 没有 模式
D:\install\miniconda\lib\site-packages\pyLDAvis\_prepare.py:257: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  return pd.concat([default_term_info] + list(topic_dfs))
TypeError: __init__() got an unexpected keyword argument 'n_topics'

一般出现这种问题都是程序中字母写错、漏写之类的问题

————————————————

版权声明:本文为CSDN博主「zhuimengshaonian66」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。 原文链接:https://blog.csdn.net/zhuimengshaonian66/article/details/81700959

n_components 参数名称修改了。

lda, tf, vect = lda_on_chinese_articles(df = negative, n_topics = 3)
pyLDAvis.sklearn.prepare(lda, tf, vect)
D:\install\miniconda\lib\site-packages\sklearn\feature_extraction\text.py:300: UserWarning: Your stop_words may be inconsistent with your preprocessing. Tokenizing the stop words generated tokens ['lex', '①①', '①②', '①③', '①④', '①⑤', '①⑥', '①⑦', '①⑧', '①⑨', '①a', '①b', '①c', '①d', '①e', '①f', '①g', '①h', '①i', '①o', '②①', '②②', '②③', '②④', '②⑤', '②⑥', '②⑦', '②⑧', '②⑩', '②a', '②b', '②d', '②e', '②f', '②g', '②h', '②i', '②j', '③①', '③⑩', '③a', '③b', '③c', '③d', '③e', '③f', '③g', '③h', '④a', '④b', '④c', '④d', '④e', '⑤a', '⑤b', '⑤d', '⑤e', '⑤f', 'li', 'ng', 'zxfitl'] not in stop_words.
  'stop_words.' % sorted(inconsistent))
Topic #0:
课堂 学生 传统 学习 没有 取代 教师 交流 老师 不能 互动 视频 认为 知识 师生 可能 面对面 合作 进行 不是
Topic #1:
学习 课程 学生 教育 教学 学习者 教师 发展 知识 问题 需要 无法 我国 不能 存在 进行 没有 认为 平台 方式
Topic #2:
传统 课堂 学生 现在 教育 进步 发展 高校 效果 韩高英 不是 无法 取代 中国 线下 实际 讨论 大学生 网上 时间
D:\install\miniconda\lib\site-packages\pyLDAvis\_prepare.py:257: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  return pd.concat([default_term_info] + list(topic_dfs))
pyLDAvis.sklearn.prepare(lda, tf, vect)
D:\install\miniconda\lib\site-packages\pyLDAvis\_prepare.py:257: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  return pd.concat([default_term_info] + list(topic_dfs))

参考 https://github.com/bmabey/pyLDAvis/issues/132

D:\install\miniconda\lib\site-packages\pyLDAvis\_prepare.py:257: FutureWarning: Sorting because non-concatenation axis is not aligned. A future version
of pandas will change to not sort by default.

To accept the future behavior, pass 'sort=False'.

To retain the current behavior and silence the warning, pass 'sort=True'.

  return pd.concat([default_term_info] + list(topic_dfs))

重新安装后依然没有解决。

pyLDAvis.__version__
'2.1.2'
pd.__version__
'0.24.2'
# !pip install pyldavis
import pickle as pkl
with open("model/sklearn-lda.pkl", 'wb') as fp:
    pkl.dump(lda, fp)
with open("model/sklearn-lda.pkl", 'rb') as fp:
    model0 = pkl.load(fp)
    print(model0.__class__)
<class 'sklearn.decomposition.online_lda.LatentDirichletAllocation'>