如何为conda配置特定环境的环境变量
设定特定环境下变量 比如有个analyticsconda 环境,想在启动该环境时,自动加载MY_KEY=’secret-key-value’,MY_FILE=/path/to/my/file/,方法如下: 通过在终端中运行,在终端窗口中找到conda环境的目录:echo $CONDA_PREFIX. 输入该目录并创建以下子目录和文件: 编辑 ./etc/conda/activate.d/env_vars.sh: 编辑 ./etc/conda/deactivate.d/env_vars.sh : 运行conda activate analytics, 环境变量 MY_KEY 和MY_FILE 被自动加载,运行 conda deactivate, 这些变量被消除。 设定特定环境下环境变量PATH 和前面没啥区别: 通过在终端中运行,在终端窗口中找到conda环境的目录:echo $CONDA_PREFIX. 输入该目录并创建以下子目录和文件: 编辑 ./etc/conda/activate.d/env_vars.sh: 编辑 ./etc/conda/deactivate.d/env_vars.sh : 搞定。
Multithreading PyQt applications with QThreadPool
例子解决一切问题 QThreadPool, QRunnable, pyqtSignal
关于最新新冠病毒英国新变体VOC-202012/01的所有
关于最新新冠病毒英国新变体VOC-202012/01的所有 2020年12月19日,英国首相约翰逊宣布,一种变异新冠病毒正在伦敦和英格兰东南部地区蔓延,传播速度比原先发现的病毒快70%。 这种SARS-CoV-2变体最初被Public Health England命名为VUI – 202012/01 (Variant Under Investigation),随后被正式命名为VOC-202012/01 (Variant of Concern)。按照Pangolin对新冠病毒谱系命名规则,该变异体为B.1.1.7.。按照美国CDC采用的nextstrain命名方式为20I/501Y.V1.。 这种株系由17个突变定义,包括13个非同义突变,4个缺失,6个同义突变. gene nucleotide amino acid ORF1ab C3267T T1001I C5388A A1708D T6954C I2230T 11288-11296 deletion SGF 3675-3677 deletion spike 21765-21770 deletion HV 69-70 deletion 21991-21993 deletion Y144 deletion A23063T N501Y C23271A A570D C23604A P681H C23709T T716I T24506G S982A Read more…
马老师第三弹–做个词云
马老师第三弹–做个词云 接着之前的第二弹,这次做个词云。 词云 “词云”就是通过形成“关键词云层”或“关键词渲染”,对网络文本中出现频率较高的“关键词”的视觉上的突出。 举个例子: wordcloud wordcloud是Python优秀的词云展示第三方库。 github: https://github.com/amueller/word_cloud 安装:pip install wordcloud 使用方法很简单: 总共分三步: 配置对象参数: wc = wordcloud.WordCloud() 参数 描述 width 词云图片宽度,默认400像素 height 词云图片高度,默认200像素 min_font_size 词云图片字体最小字号,默认4号 max_font_size 词云图片最大字号,根据高度自动调节 font_step 词云图片字体字号的步进间隔,默认为1 font_path 指定字体文件的路径(中文要单独设置),默认None max_words 指定词云显示的最大单词数量,默认200 stop_words 指定词云的排除词列表,即不显示的单词列表 mask 指定词云形状,默认为长方形,需要引用 PIL.imread()函数 background_color 指定词云图片的背景颜色,默认为黑色 加载词云文本:wc.generate(‘ ‘.join(corpus)) 可以是输入的文件内容,要求为str。 输出词云图片:wc.to_file(“python_wordcloud.png”) 大胆的想法 这不好看,又有了一个大胆的想法wordcloud可以增加mask参数设置词云图片形状,所以我用ps做了个马老师的mask图片。大概长这样(自行脑补): 然后图片就变成了这样:
马老师第二弹–弹幕到底说了什么
马老师第二弹–弹幕到底说了什么 导言 在被人民日报被评价为”哗众取宠”后,bilibili下架了所有的马老师的视频。我之前爬取的视频历史弹幕竟成了这一段时间的唯一记录。这可以查看之前的文章:用BeautifulSoup爬取BiliBili视频的历史弹幕 这篇文章计算最多弹幕出现的次数是以每条弹幕完全一致作为标准的,即当弹幕历史中两条弹幕完全一致时(包括标点符号),才会被统计为两次出现。例如:年轻人 不讲武德和年轻人不讲武德是要被计算为不同词条的。为了解决这个问题,需要分词。 碰巧遇到了jieba这一对中文进行分词的Python第三方库,为了探究网友究竟说了什么,再来亿遍。 jieba库介绍 中文名:“结巴”, 是Python 的中文分词组件,即将中文的自然语言分解为合适的词语(主谓宾,常用词语等)。举个例子: 项目地址github:https://github.com/fxsjy/jieba 安装:pip install jieba 特点: 支持三种分词模式: 精确模式,试图将句子最精确地切开,适合文本分析; 全模式,把句子中所有的可以成词的词语都扫描出来, 速度非常快,但是不能解决歧义; 搜索引擎模式,在精确模式的基础上,对长词再次切分,提高召回率,适合用于搜索引擎分词。 支持繁体分词 支持自定义词典 进入正题 导入模块 分词及绘图 入口 结果 23653个词语。绘图后,发现词语已被正确分开。 但其实有个问题,耗子和尾汁被分开了,对于玩梗的,对于某些词语还是要连在一起的。jieba有个自定义添加词典的函数add_words(),可以讲未知的词语添加到词典库中。在增加耗子尾汁有bear来等后,结果变成了这样。 这样就合理多了。 同样地,对于另一个视频的记录来讲,结果也类似。增加自定义字典前: 增加自定义字典后: 结论 分词是自然语言的第一步,将文本转换为基本的单词矩阵,对于以后的文本分类(可以看这里:如何建立一个基于TF-INF的文本分类器),主题模型有重要意义。
如何建立一个基于TF-INF的文本分类器
如何建立一个基于TF-INF的文本分类器 对于一个文本分类任务来讲,第一件要做的事情是将文本库转换为模型可以使用的输入,即将文本分解转换为向量(str -> float)。 TF-IDF则是这一问题的一个解决方案。 TF-IDF是Term Frequency – Inverse Document Frequency (词频-逆文本频率)的缩写。 TF 某一文章中该词出现的频次除以所有出现的词量 $$TF(i, j)=\frac{\text { Term i frequency in document } \mathrm{j}}{\text { Total words in document } \mathrm{j}}$$ IDF 所有文章的数量除以所有文章中该词出现的次数的对数 $$IDF(i)=\log _{2}\left(\frac{\text { Total documents }}{\text { documents with term i }}\right)$$ TF-IDF 前面两个相乘 $$TF-IDF=TF(i, j)*IDF(i)$$ 通过一个例子来看 Read more…
xinzipanghuang.net 近15天访客分析
xinzipanghuang.net 近15天访客分析 数据获取于内置插件 最近15天(从2020/11/5开始)的访问记录有782条,也算访问量比较大了。 先统计这些部分,有意思的后面再玩。 id 访问时间 地域 来源 入口页面 搜索词 访客标识码 访问时长 访问页数 最后停留在 … 浏览器 语言环境 屏幕分辨率 屏幕颜色 Flash版本 是否支持Cookie 是否支持JAVA 打开时间 停留时长 页面地址 0 1.0 2020/11/18 19:19 贵阳 百度 https://www.xinzipanghuang.net/pandas-datafram… DataFrame’ object has no attribute ‘drop_dupli… 1.890000e+18 未知 1.0 https://www.xinzipanghuang.net/pandas-datafram… … Microsoft Edge NaN 1536×864 24-bit NaN Read more…
Apriori关联分析-Python实现
Apriori关联分析-Python实现 问题描述 这类问题常出现于确定某些商品之间的关联销售联系情况。比如,沃尔玛将啤酒与尿布一起销售,通常可以获得两个商品的更高销量。背后的原因是妻子要求丈夫为小孩买尿布,但丈夫同时也会去购买自己喜欢的啤酒等商品。但从数据中还存在着更多的关联关系需要被发掘。关联规则学习就是来解决这些问题的。 关联规则学习(Association rule learning)是一种在大型数据库中发现变量之间的有趣性关系的方法。它的目的是利用一些有趣性的量度来识别数据库中发现的强规则。这些关系可以有两种形式:频繁项集或者关联规则。 频繁项集(frequent item sets)是经常出现在一块的物品的集合关联规则(association rules)暗示两种物品之间可能存在很强的关系。 关联规则学习基础概念 支持度与置信度支持度$$support(X,Y)=P(X,Y)=\frac{number(X,Y)}{number(all sample)}$$置信度 $$confidence(X⇒Y)=P(Y∣X)=\frac{P(X,Y)}{P(X)}=\frac{number(X,Y)}{number(X)}$$ 举个例子 交易编号 购买商品 0 牛奶,洋葱,肉豆蔻,芸豆,鸡蛋,酸奶 1 莳萝,洋葱,肉豆蔻,芸豆,鸡蛋,酸奶 2 牛奶,苹果,芸豆,鸡蛋 3 牛奶,独角兽,玉米,芸豆,酸奶 4 玉米,洋葱,洋葱,芸豆,冰淇淋,鸡蛋 牛奶的支持度$$support(X,Y)=P(X,Y)=\frac{number(X,Y)}{number(all sample)}=3/5$$ (牛奶->鸡蛋)的置信度$$confidence(X⇒Y)=P(Y∣X)=\frac{P(X,Y)}{P(X)}=\frac{number(X,Y)}{number(X)}$$ $$Confidence(牛奶->鸡蛋)=(牛奶,鸡蛋)一起购买的次数/鸡蛋的购买次数=2/4=0.5$$ 除了以上的两个概念,还有一个概念提升度(Lift):指当销售一个物品时,另一个物品销售率会增加多少。$$Lift(X⇒Y)=confidence(X⇒Y)/support(X)Lift(牛奶->鸡蛋)=2/4/3/5=0.83$$ 当Lift大于1时,表示该物品X对商品Y的销售产生积极作用;提升度小于1那么意味着购买X反而会减少Y的销量。 Apriori算法 从原理上来看,求解支持度和置信度的公式是很简单的,遍历所有组合计算即可。但是,遍历的时间复杂度是$ 2^{N-1} $ Apriori算法则是找出频繁项集的高效算法。 某个项集是频繁的,那么它的所有子集也是频繁的。 如果一个项集是 非频繁项集,那么它的所有超集也是非频繁项集。 关于这两点,可以举个例子:如果A和B之间并不存在频繁项,则他们和C之间亦不存在。 如果{A,B}这个项集是非频繁的,那么{A,B}这个项集的超集,{A,B,C},{A,B,D}等等也都是非频繁的,这些就都可以忽略不去计算。 具体实现 首先是第三方库 其次,自己实现 考虑的问题如下: 首先生成所有单个物品的项集列表 遍历数据集中所有项集,将不满足最小支持度的项集去掉 对剩下的项集组合,生成包含两个元素的项集 Read more…
用BeautifulSoup爬取BiliBili视频的历史弹幕
用BeautifulSoup爬取BiliBili视频的历史弹幕 在网上看到一个有意思的爬虫程序,就两个函数,可以根据选择的日期对某一视频的历史弹幕进行爬取。 首先导入库 定义获取历史弹幕的url 这里有意思的事情是,在BiliBili请求获取历史弹幕是一个ajax数据包,请求url以这个形式进行:https://api.bilibili.com/x/v2/dm/history?type=1&oid=162446150&date=2020-11-09关于这一点可以看这里包含两个参数,一个oid即视频编号,date为请求日期。 先获取url列表 requests获取数据,BeautifulSoup解析 这个就很常规了 这有个好玩的,统计某个视频出现数目最多的历史弹幕。以某个视频为例,很明显,盖亚大地破坏者的梗刷的最多,迪迦的粉丝数量还是不少。 紧跟时事🐶🐶🐶🐶🐶🐶 来波马老师 2020年11月25更新 视频来源:https://www.bilibili.com/video/BV1dK411G73T?from=search&seid=14377148875392576157 换个视频源,再来亿遍:https://www.bilibili.com/video/BV1ky4y1B7DW?from=search&seid=14377148875392576157 总体来说:来骗,来偷袭,我六十九岁的老同志,这好吗?这不好。年轻人不讲武德,我劝耗子尾汁!! 总结 主要是数据传输加密的原理,requests,BeautifulSoup倒没啥。浏览器请求的机制