# Euler **Repository Path**: jiexuan-zhang/euler ## Basic Information - **Project Name**: Euler - **Description**: OpenEuler的组成分析 - **Primary Language**: Python - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 16 - **Forks**: 2 - **Created**: 2022-11-05 - **Last Updated**: 2022-12-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Euler ## 介绍 OpenEuler的组成分析 ## 软件架构说明 我们的主要代码都放在了`code`目录下。`code`收录了`UpStream`和`DownStream`两个包,分别对应了`OpenEuler`的上游和下游分析。 具体的使用说明可以查看`README.md`的下方的上游分析和下游分析部分内容,或者在`Wiki`文档、或者我们的`CSDN`:[用户手册](https://blog.csdn.net/qq_52713437/article/details/128300059?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128300059%22%2C%22source%22%3A%22qq_52713437%22%7D) 如果您想要观看英文版本的`README`,请点击这里:[README.en.md](README.en.md) 如果您想要直接查看我们的分析结果,请点击这里:[分析结果](result)或者直接进入`CSDN`查看我们的分析报告:[上游分析](https://blog.csdn.net/qq_52713437/article/details/128299202),[下游分析](https://blog.csdn.net/Nana7mii/article/details/128297849?csdn_share_tail=%7B%22type%22%3A%22blog%22%2C%22rType%22%3A%22article%22%2C%22rId%22%3A%22128297849%22%2C%22source%22%3A%22Nana7mii%22%7D) 同时,我们也在`OpenEuler`的开源社区发布了Issue:[Issue](https://gitee.com/openeuler/community-issue/issues/I660DY?from=project-issue) ## 依赖处理 初次使用请安装依赖: ``` pip install -r requirements.txt ``` ## 参与项目 如果你想参与到本项目当中,你可以: 1. 提出 / 解决 issue 提出issue,请按照如下格式:`[Target / Bug / Need / Other] 描述` ,其中`Target`为开发者目标,`Bug`和`Need`主要由你们来进行参与,如果想提出并解决issue,深度参与到我们项目中,请提交你的Pr👇 2. 提交Pr 我们会以最快的速度对您的提交进行审核与检测,请大家尽情参与到项目中来 3. 参与软件文档编写 如果你对于我们的开发文档有所疑问,或者有着更好的想法,请联系我们,我们会尽快给予回应并进行修改 我们的邮箱地址:20231040@buaa.edu.cn 我们的开发者日志记录:[OpenEuler的组成分析](https://blog.csdn.net/qq_52713437/category_12102026.html) 你也可以在我们的日志下与我们进行交流,提出您的想法 ## 上游分析 1、爬取数据: 请您运行`/code/UpStream/crawler.py` 将上游分析的数据爬取至本地进行处理,如果您在爬取数据时出现了错误,请您登录`OpenEuler`的官方代码库,查看哪一个镜像源您可以使用,并替换`main()`中的`link`即可。 爬取成功,您会发现`/code/UpStream/UpData`的文件夹,里面存放了我们接下来需要的数据。 2、分析数据 请您运行`/code/UpStream/upAnalysis.py`。我们在上游分析中作业数据流的处理,您可以方便的一站式完成上游的分析任务。具体的实现细节,您可以查看`/code/UpStream/upAnalysis.py`中的代码部分。 这里我们主要使用了入度出度,在此,我们会生成4个`.csv`和4张图像,它们分别存放在`/code/UpStream/UpData/top10`和`/code/UpStream/UpData/pics`中,您可以凭借相关的内容做出您自己的分析与理解,我们对此表示非常欢迎。 ![in](pics/InDegree.png) ![out](pics/OutDegree.png) ![b](pics/betweenness.png) ![c](pics/clustering.png) Tips: 我们的依赖关系不一定是全面的,当你找到了某一个包所依赖的其他包,你可以新建一个说明文档,并联系我们。其中,这个文档的命名为: > [包名]--[版本号].md 在文档内按照模板要求编辑该包的具体信息,模板如下: ```markdown # {在此填写包名} {在此填写包描述} ## 版本号 {在此填写版本号} ## 作者信息 ### 作者A {在此填写作者A描述} ### 作者B {在此填写作者B描述} ### 作者C {在此填写作者C描述} ``` 可以看到,该文件包含整个包的具体信息,包括: - 包名 - 版本号 - 作者信息 ## 下游分析 1、运行: 直接运行`/code/DownStream/RunMe.py`,完成前期分析。 2、进入: `/code/DownStream/topics_num_for_lda.py` 首次使用请运行`draw()`获取推荐的主题数。`coherence`越大,主题数约合适。 我们已经得到了合适的主题数为7,所以代码中直接引用了7: ```python lda = LdaModel(corpus=corpus, id2word=dictionary, num_topics=7, passes=30, random_state=1) ``` 得到推荐主题数之后,运行`build`,即可得到一个网页,打开便是主题分析结果: ![image1](pics/1.png) 随后进入`/code/DownStream/topics_sorted.py` 将分词好的主体进行定义,运行,得到饼状结果图: ![image2](https://gitee.com/jiexuan-zhang/euler/raw/master/pics/myplot.png)