Seenull Repo 发布

初衷

在github的日子里,不时会为找到一个称心如意的repo而兴奋不已。接下来就是马不停蹄的提起键盘git clone、看Readme、测效果。 但快乐的时光是短暂的,我时常为找一个类似功能的repo而伤透脑筋,除了搜索功能,我很少有获知其它repo的方式,尤其是相对冷门但是却满足我需求的repo。

灵感

我发现了一个规律,一个用户关注的领域范围是有边界的,用户存在着关注画像。这种关系若以词向量的方式表示,那么!相似度最高的repo关注者一定是同画像用户。所以,仓库是可以分组的,关注点可以用无限维度的词语表示。

以github上’https://github.com/ownerA/repo1’举例,‘ownerA/repo1’其相似度结果最高的‘ownerB/repo2’关注者一定是‘ownerA/repo1’的关注者。那么通过词向量,输入‘ownerA/repo1’,则能发现‘ownerB/repo2’。所以,不必通过关键词匹配的方式去找同类repo的工具就此诞生。暂以seenull repo 发布。

原理

还不明白什么意思?在词向量最典型应用中,通过自然语言库:

‘中国’ similar ‘北京’、‘上海’、‘广州’,

‘美国’ similar ‘华盛顿’、‘洛杉矶’、‘纽约’,

‘java’ similar ‘c#’、‘程序’、‘javascript’。

同时词向量还可以表示这种关系:

男人-男孩 similar 女人-?

内蒙-呼和浩特 similar 河北-?

有比“女孩”更好的标准答案吗?紧跟其后的小女孩、潮妈相似度极高。

石家庄 完美出现,我都想用词向量做数学运算了:)

实践-技术点

  • 定期爬虫 抓取基础数据,用户对仓库的关注信息
  • 词向量训练模型,目前用到word2vec
  • docker容器,微服务架构,采集、训练、web服务、页面分离
  • 响应式布局

TODO

  • 搜索界面通过异步访问github api,对呈现仓库的description、star、fork 等信息的描述。
  • 目前发布的模型基于29w个页面star记录,采集的数量级需提升。
  • NOG(Not Only Github)探究,通用模型的行业化运用设计,如更精确的商品查找模型、歌曲搜索模型。
Written on May 14, 2017

请我喝杯咖啡吧