CN105389331B - 一种基于市场需求的开源软件分析与比较方法 - Google Patents

一种基于市场需求的开源软件分析与比较方法 Download PDF

Info

Publication number
CN105389331B
CN105389331B CN201510617005.3A CN201510617005A CN105389331B CN 105389331 B CN105389331 B CN 105389331B CN 201510617005 A CN201510617005 A CN 201510617005A CN 105389331 B CN105389331 B CN 105389331B
Authority
CN
China
Prior art keywords
software
advertisement
demand
open source
document
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201510617005.3A
Other languages
English (en)
Other versions
CN105389331A (zh
Inventor
王怀民
尹刚
王涛
刘冰珣
史殿习
刘惠
丁博
史佩昌
甘谊昂
杨程
余跃
张方
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201510617005.3A priority Critical patent/CN105389331B/zh
Publication of CN105389331A publication Critical patent/CN105389331A/zh
Application granted granted Critical
Publication of CN105389331B publication Critical patent/CN105389331B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/02Marketing; Price estimation or determination; Fundraising
    • G06Q30/0201Market modelling; Market analysis; Collecting market data

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Business, Economics & Management (AREA)
  • Finance (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • Development Economics (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • Accounting & Taxation (AREA)
  • Entrepreneurship & Innovation (AREA)
  • General Engineering & Computer Science (AREA)
  • Game Theory and Decision Science (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

一种基于市场需求的开源软件分析方法,选取以针对计算机行业的招聘信息为主的招聘站点,爬取广告并抽取广告属性信息;爬取开源软件数据信息;对开源软件和广告信息进行匹配关联;根据用户选择,将反映市场需求的软件列表反馈给用户,同时为软件开发者提供其关心的开源软件就业发展情况。

Description

一种基于市场需求的开源软件分析与比较方法
技术领域
本发明涉及一种开源软件分析方法,尤其涉及一种基于市场对于开源软件的需求信息对软件进行分析的方法。
背景技术
目前,软件行业正在飞速发展,开源软件数目呈指数增长趋势,如何选择开源软件已经成为了一个巨大的挑战。与此同时,也出现了很多招聘网站,比如为大家熟知的领英。这些招聘网站提供给我们很多有价值的数据和信息。国内非常有名的前程无忧(51job)网站发布的数据显示,截止到2014年3月,有将近有45万IT职位需求被发布,比去年同比增长了35.9%。不仅如此,更多以互联网和软件行业量身定造的垂直招聘平台也如雨后春笋一样,例如内推网和拉勾网。显然,企业对于优秀的IT人才有着极大的需求,这其中还包括着对不同软件的需求情况。这样的需求对于软件分析本身来说具有发展性意义,也对软件从业人员极具有指导性意义,应该和软件质量一样成为研究工作关注的重点。
然而,传统研究关注的都是软件质量本身,提出了Boehm,McCall,Trustie等软件质量评估模型,针对软件的可用性,可靠性,安全性,实时性等软件本身特性进行评估和分析,却没有针对软件的市场需求情况进行评估和分析的研究。很多研究将数据挖掘算法将软件开发者和开源软件项目联系起来,却很少有研究将软件开发者和软件招聘广告联系起来。而这少数的研究却往往在连接上软件开发者和软件招聘广告后戛然而止,缺少后续进一步的研究和分析,这是软件分析研究工作中欠缺的部分。
发明内容
本发明的目的在于针对软件分析在市场需求领域上研究的不足,提出一种基于市场需求的开源软件分析与比较方法,该方法弥补目前按开源软件分析在市场需求这一领域的空缺,从开发者的经验需求,职位地理位置,时间的影响三个方面来对开源软件进行分析和比较,并对出现差异的可能原因进行合理推测。该分析能够为软件研究提供了新的角度,也为软件开发者提供了选择开源软件的参考依据。
本发明的技术方案包括以下步骤:
步骤101、选取以针对计算机行业的招聘信息为主的招聘站点,采用通用Web爬虫技术从选取的站点爬取所有能够爬取到的招聘广告,并以HTML代码格式存储在数据库中。
步骤102、在存储下来的HTML代码基础上进行广告属性的抽取,按广告的内容分为如下几个字段:广告网址,广告标题,广告标签,创建时间,广告内容,工作类型,开发者经验,工资范围,工作地点,然后将其存储在招聘信息数据表中。
进一步地,广告内容的抽取具体包括,从数据库中获取HTML代码信息并封装成自定义的页面格式,根据不同的页面查找相应的模板进行抽取,对抽取成功的结果进行输出。
步骤103、采用软件名称与广告标签、软件标签和广告标签、软件名称和广告标题、软件标签和广告标题四组不同数据进行广告和软件的匹配,具体为如下几步:
步骤103.1、采用通用Web爬虫技术从互联网的主要项目托管社区中采集软件的项目数据,获取软件名称;
步骤103.2、采用开源全文检索工具Lucene为采集到的广告文档的文档标题、文档内容和软件名称建立文件索引;用软件名称与广告标签进行匹配;若所述文档具有与所述软件名称相同的标签,则为所述广告文档与所述开源软件建立关联,并赋予权值w1
步骤103.3、用软件名称在文档标题中进行检索,检索的过程使用开源的Lucene全文检索工具实现,具体实施为:以软件名称为关键词,从步骤103.2中建立的文件索引中搜索广告文档的标题,若文档标题中含有软件名称,则为该文档与软件建立关联,并将这次关联赋予权值w2
步骤103.4、对软件标签统计包含在广告标题中的标签个数x,计算权值w3=0.5*log2(x2+1),该权值表示以软件标签在文档标题中的出现次数作为该软件与广告文档关联程度的度量,通过权值的计算判断关联结果的可信度;
步骤103.5、在所有已建立的关联中,对关联的软件标签与广告标签进行匹配,统计在两者中都出现的标签个数y,计算权值w4=0.6*log2(y2+1);
步骤103.6、步骤103.2到步骤103.5对软件和广告的4种不同数据进行匹配,并为每一步的关联结果赋予了相应的权值,这4步匹配结束后,计算最终的权值w=w1+w2+(w1+w2)*(w3+w4),把权值超过指标的匹配结果看作是匹配成功,并将匹配结果存储在数据库中;
步骤104、从开发者经验、职位地点、软件类型反映软件市场需求数目和薪资影响,并基于开发者经验、职位地点、软件类型三个不同因素向用户推荐软件;
进一步地,步骤104进一步包括:
步骤104.1、根据用户需求确定需要进行进一步分类的已经提取广告属性字段,对数据库存放的匹配结果和抽取结果,进行属性分类、软件分类和相应的sql操作,将统计信息以可视化方式推荐给用户;
进一步地,步骤104.1可进一步包括:得出市场对不同经验者的需求量和工资、不同地区的整体工资和需求量、以及同一类软件在同一城市的需求、工资软件职位数目需求信息。
进一步地,步骤104.1还可以包括:在匹配广告的基础上建立同类软件关联,推荐给用户,具体的:当若干个软件都与同一广告匹配时,所述若干个软件之间的值为1,当所述若干个软件都与另一相同广告匹配时,累计为2,如此类推,当该值超过了设定的阙值,则判定两种软件为同一类软件,当用户随机选择一软件后,页面不仅仅列出该软件的需求数目和薪资需求,同时还会列出符合同类软件条件的同类软件,并生成前几名相关同类软件的需求和数目对比关系图。
采用本发明可以达到以下技术效果:
本发明针对开发者经验、职位位置、软件类型,时间四个因素对软件进行差异分析,为软件从业人员展示开发经验,城市,软件类型,时间对软件行业就业的影响,并基于开发经验,城市,软件类型为用户推荐软件。以市场对开源软件的职位需求情况,结合实际情况对开源软件的市场需求情况进行分析比较,并对差异出现的原因进行合理的推断,最终可以为传统的软件分析提供新的参考角度,为软件开发者提供开源软件就业发展情况。
附图说明
图1为本发明基于市场需求的开源软件分析与比较方法实施的流程图;
图2为本发明一种基于市场需求的开源软件分析与比较方法成果实例图;
具体实施方式
本发明主要针对一种基于市场需求的开源软件分析与比较方法。
如图1所示,为本发明实现基于市场需求的开源软件分析与比较方法的流程图,具体执行以下步骤:
步骤101、选取以针对计算机行业的招聘信息为主的招聘站点,采用通用Web爬虫技术从选取的站点爬取所有能够爬取到的招聘广告,并以HTML代码格式存储在数据库中。
首先需要选取研究数据的来源和对象。我们的市场需求信息来自于招聘网站,因此要选择合适的招聘网站,必须包括以下条件:第一,保证有足量的招聘信息;第二,招聘广告本身要包括足够有价值的信息;第三,招聘网站必须易于爬取;第四,招聘广告必须都是针对IT行业的。针对第一点,我们通过indeed网站得搜索功能,统计了目前IT类型招聘广告数量发布最多的网站,考虑其他三点后,选取了数量排在前八个招聘网站中的内推网和拉勾网,作为我们招聘网站数据的来源。之后,采用通用的Web爬虫技术从内推网和拉勾网上爬取所有能够爬取到的招聘广告。以本方法中爬取的内推网为例,内推网本身有个最新职位的列表页,基本上是它的历史职位广告的集合,爬虫只需要监视列表页面即可达到爬取该网站所有职位的目的。首先我们找个爬取入口,爬取入口这里指能看到所有最新职位的那个列表页,通过“前缀+页面号+后缀”拼接出待爬取的列表页URL,放到一个集合去,然后提交给爬虫爬取。具体的配置设定如下:
<prefixUrl>http://www.neitui.me/neitui/type=all&amp;page=</prefixUrl&gt;
&lt;postfixUrl&gt;.html&lt;/postfixUrl&gt;
&lt;incrementalPages&gt;16&lt;/incrementalPages&gt;
&lt;incrementSleepTime&gt;86400&lt;/incrementSleepTime&gt;
其中,“http://www.neitui.me/neitui/type=all&amp;page=”即为前面提到的前缀,“&lt;postfixUrl&gt;.html&lt;/postfixUrl&gt;”是后缀,incrementalPages则代表要爬的页数,通常情况下,程序会自动拼接,&lt;incrementSleepTime&gt;86400&lt;/incrementSleepTime&gt;代表每天会爬取新的,86400是秒数,代表一天24小时,只要每隔一段时间,爬取列表页,就能获得源源不断的新职位信息,我们将其存储下来,此时存储形式为HTML代码。爬虫对已经爬过的URL和没有爬的URL做区分,防止重复爬取。爬虫会有初始的种子URL,但是这些URL对于爬虫是远远不够的。爬虫在爬页面的时候,需要不断发现新的链接,以实现自动化爬行。
步骤102、在存储下来的HTML代码基础上进行广告内容的抽取,按广告的内容分为如下几个部分:广告网址,广告标题,广告标签,创建时间,广告内容,工作类型,要求经验,工资范围,工作地点,然后将其存储在招聘信息数据表中。
广告内容的抽取具体包括,从数据库中获取HTML代码信息并封装成自定义的页面格式,根据不同的页面查找相应的模板进行抽取,对抽取成功的结果进行输出。
在此需要步骤101中的爬虫框架,Jsoup,Mybatis开源工具。抽取框架由四个组件(PageDownloader、PageProcessor、PageErrorOutPut、Pipeline)构成,主要是将这些组件结合并完成增量抽取的任务:PageDownloader主要完成从数据源(数据库、文件等)中获取页面信息并封装成RawPage和Page(此时Page已经被封装在RawPage中);PageProcesser根据不同的页面找到相应的Model进行抽取(可能存在多个模板);Pipeline接受PageProcesser抽取成功并封装在Resultltems的结果进行输出,输出的位置由用户决定;PageErrorOutPut接收PageProcesser抽取失败和Pipeline存储失败的页面,实现错误页面输出。
采用的两种开源工具,其中MyBatis是支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。Xsoup是Jsoup基于开发的HTML抽取器,提供了XPath支持。相比另一个常用的基于XPath的HTML抽取器HtmlCleaner,Xsoup有较大的性能优势,解析时间和抽取时间都只有HtmlCleaner的一半。同时Xsoup提供全面的XPath解析错误提示。
更具体地,在步骤102的实施中,还包括
步骤102.1、完成数据库,Mybatis,Spring等配置文件;
步骤102.2、完成PageDonwLoader接口实现类;
步骤102.3、实现对应的模板Xxx_Model;一般对应的model由三个部分组成:
1.ExtractBy注解和相对应的属性,ExtractBy注解主要作用于字段,它表示“使用这个抽取规则,将抽取到的结果保存到这个字段中”例如:
@ExtractBy(″//div[@id=′readme′]/text()″)
private String readme;
2.实现AfterExtractor接口中的方法afterProcess();有的时候,注解模式无法满足所有需求,我们可能还需要写代码完成一些事情,这个时候就要用到AfterExtractor接口了。例如:
public interface AfterExtractor{
public void afterProcess(Page page);
}
afterProcess方法会在抽取结束,字段都初始化完毕之后被调用,可以处理一些特殊的逻辑
3.实现ValidateExtractor接口中的方法validate(),有的时候,我们需要对抽取的字段做相应的验证,比如字段非空,日期类型检查,数值型数据监测等,这时候可以用到ValidateExtractor接口。
public interface ValidateExtractor{
public void validate(Page page);
}
Validate方法会在抽取结束,字段都初始化完毕之后被调用,可以处理一些验证。
具体model实现为:
步骤102.4、实现抽取结果与数据库映射接口Xxx_Dao;
步骤102.5、完成接口Pipeline的实现类Xxx_Pipeline;
步骤102.6、完成主程序Xxx_Extractor。
步骤103、采用软件名称与广告标签、软件标签和广告标签、软件名称和广告标题、软件标签和广告标题四组不同数据进行广告和软件的匹配;
具体为如下几步:
步骤103.1、采用通用Web爬虫技术从互联网的主要项目托管社区中采集软件的项目数据,获取软件名称;
步骤103.2、采用开源全文检索工具Lucene为采集到的广告文档的文档标题、文档内容和软件名称建立文件索引;用软件名称与广告标签进行匹配;若所述文档具有与所述软件名称相同的标签,则为所述广告文档与所述开源软件建立关联,并赋予权值w1,表示以软件名称和广告标签为度量时,所述广告文档针对所述开源软件的关联程度。(在实际的计算中,取w1=1)。
步骤103.3、用软件名称在文档标题中进行检索,检索的过程使用开源的Lucene全文检索工具实现,具体实施为:以软件名称为关键词,从步骤103.2中建立的文件索引中搜索广告文档的标题,若文档标题中含有软件名称,则为该文档与软件建立关联,并将这次关联赋予权值w2,表示以软件名称和广告标题为度量时,所述广告文档针对所述开源软件的关联程度。在实际的计算中,取w2=0.8。
步骤103.4、对软件标签统计包含在广告标题中的标签个数x,计算权值w3=0.5*log2(x2+1),该权值表示以软件标签在文档标题中的出现次数作为该软件与广告文档关联程度的度量,通过权值的计算判断关联结果的可信度,其表示以软件标签在广告标题中的出现次数作为该软件与广告文档关联程度的度量,通过权值的计算判断关联结果的可信度。
步骤103.5、在所有已建立的关联中,对关联的软件标签与广告标签进行匹配,统计在两者中都出现的标签个数y,计算权值w4=0.6*log2(y2+1),其表示以软件标签和广告标签中相同的标签个数作为度量,通过权值的计算判断关联结果的可信度。
步骤103.6、步骤103.2到步骤103.5对软件和广告的4种不同数据进行匹配,并为每一步的关联结果赋予了相应的权值,这4步匹配结束后,计算最终的权值w=w1+w2+(w1+w2)*(w3+w4),把权值超过指标的匹配结果看作是匹配成功,并将匹配结果存储在数据库中;
步骤104、从开发者经验、职位地点、软件类型反映软件市场需求数目和薪资影响,并基于开发者经验、职位地点、软件类型三个不同因素向用户推荐软件;
进一步地,步骤104进一步包括:
步骤104.1、根据用户需求确定需要进行进一步分类的已经提取广告属性字段,对数据库存放的匹配结果和抽取结果,进行属性分类、软件分类和相应的sql操作,将统计信息以可视化方式推荐给用户;
进一步地,步骤104.1可进一步包括:得出市场对不同经验者的需求量和工资、不同地区的整体工资和需求量、以及同一类软件在同一城市的需求、工资软件职位数目需求信息。
例如:每个广告中都有对开发者经验的要求,经验要求以标签形式存储在每一条广告的属性中,分为“经验1-3年”“经验3-5年”等标签内容,按照标签内容不同进行分类处理。可以分为5类,即应届、1-3,3-5,5-10,10年以上;
然后根据分类好后的标签进行数量和平均薪资计算;
score1=∑number
score2=avg∑salary
具体实现可以采用sql语句,例如以下是平均薪资的计算;
当用户想要查看不同经验的市场需求情况时候,如果选择参考需求量的时候,显示按照score1的从大到小的顺序返回给用户;如果选择参考薪资水平,则显示按照score2的从大到小的顺序返回给用户;
基于职位地点的推荐,不同地区的整体工资差异和需求量有区别,同样职位地区也是以标签形式存储在广告属性中,我们参考前一统计方法进行同样的处理。
用户在查看该部分结果的时候,需要选择城市地区,然后再选择查看需求量还是平均薪资水平,显示按照score1和score2的从大到小的顺序返回给用户。
比如,基于城市的薪资统计的sql操作:
进一步地,步骤104.1还可以包括:在匹配广告的基础上建立同类软件关联,推荐给用户,具体的:当若干个软件都与同一广告匹配时,所述若干个软件之间的值为1,当所述若干个软件都与另一相同广告匹配时,累计为2,如此类推,当该值超过了设定的阙值,则判定两种软件为同一类软件,当用户随机选择一软件后,页面不仅仅列出该软件的需求数目和薪资需求,同时还会列出符合同类软件条件的同类软件,并生成前几名相关同类软件的需求和数目对比关系图。
比如数据库软件中Mysql和MongoDB都匹配上了广告1,那么Mysql和MongoDB之间的值为1;当两者都匹配到了广告2,则值加1,累计为2,如此类推。当两种软件之间的值超过了设定的阙值,我们则判定两种软件为同一类软件。
这个方法的最终展示为,当用户随机选择一软件后,页面不仅仅列出该软件的需求数目和薪资需求,同时还会列出符合上述条件的同一类型软件,并生成前几名相关同类软件的需求和数目对比关系图。
该方法基于开源软件的职位的招聘广告,将其转化为对应软件的市场需求所对应的信息,包括职位数目,平均薪资,所在城市等等。基于这样的信息,最终对开源软件的市场需求情况一目了然,既是提供对开源软件新的评估方法,也为开源软件的选择提供可靠依据。
本方法首次涉及市场职位需求下的软件分析和比较,为软件研究提供创新型视角;同时也为软件开发人员选择开源软件提供了有价值的结论和分析。比如对步骤5中出现的结果,我们可以经济的角度上分析其原因。根据我们的分析,得出1-5年经验者最受欢迎可能的原因为:应届生比较少在意料之中,因为对于大型企业,他们有专门的集中式的校园招聘,而通常发布的招聘信息则大多都是面对社会人士的招聘。而软件行业偏向于1-5年经验的人员,也侧面证实了“程序员是吃青春饭”这样的行业戏谈。而为什么是“青春饭”,我认为可以从行业特殊性着手,软件属于技术创新行业,而根据实证研究成果显示,技术创新的初期(1-3年),就业需求会有较大的变化,引起职位需求缺口和专业人士的缺少;在中期(4-6年),就业的创造效应占据主导地位,这个时候会有大量的就业机会,也会有大量人员有机会就业;而7年后,技术创新的就会趋于非创新类型。
下面结合实施例直观的说明本发明的效果。图2是实施本实例的交互示意图。实例中包含一个一个广告数据服务器ADS、开源软件数据服务器SDS、匹配关系存储服务器MDS、招聘网站W1和W2、一个用于说明交互流程的用户请求。本发明将从招聘网站W1和W2中获取IT招聘广告数据存入ADS中,从开源软件网站S1和S2中获取开源软件数据并存入SDS中,采用匹配算法将ADS与SDS中的数据匹配起来,也就是将广告需求和开源软件关联起来,并存放在匹配关系存储服务器,同时将会对其进行数据统计并可视化。当用户请求查看网页中开源软件的市场信息时,服务器会将统计信息以可视化图的形式返回开源软件的市场需求变化信息和薪资水平。
如图2所示,本发明基于市市场需求的开源软件分析与比较方法成果在网页上交互,通过本发明,点击一个项目,进入项目主页后网页将展示该项目的市场需求变化情况,以及同类软件的薪酬等,具体执行以下步骤:
步骤201、采用Web爬虫从开源软件网站S1、S2中爬取开源软件数据并将数据存储到数据服务器SDS中。
步骤202、从招聘网站W1,W2中通过爬虫获取IT职位招聘广告数据,并将数据存储到广告数据服务器ADS中。
步骤203、按照图1中描述的方法进行广告信息和开源软件的匹配,并将匹配结果存放在匹配关系存储服务器MDS中。
步骤204、SDS收到用户发送的查找某开源软件P市场的请求后,从MDS中查找该开源软件的市场需求情况(薪资、需求数量、时间等)。MDS将该开源软件的市场需求情况转化为可视化图。
步骤205、将可视化图(市场需求变化情况,以及同类软件的薪酬等的比较)及所有与P相关的信息(名称、描述、开发语言、创建时间、爬取时间、标签、源地址等)一起显示在网页上。
以上实施例可以反映出本发明能够在互联网范围为软件开发人员提供与其所需的开源软件相关的市场需求情况。由于系统中的IT招聘广告来自专注于IT职位的招聘网站,采集范围十分具有针对性,包含的招聘内容都是十分重要的信息(包含对经历的要求,薪资范围,工作地点等),在用户查找开源软件时,不仅仅可以给用户提供该软件本身的市场需求情况,包括职位数目,平均薪资等,还有软件同其他软件在同一地区或者同一经历北京的需求数目或者薪资的对比情况,使用户对开源软件的市场地位能够有一个清晰的了解。此外,由于本发明主要面向的是使用开源软件的软件开发人员。也是基于开源软件进行的研究分析工作,因此在爬取对象上具有很强的针对性,比如爬取的网站定位于互联网工作的招聘网站。而本文提供的差异分析的原因,均出自于已有的经济学原理研究,具有一定的跨学科综合性,开阔了用户的研究视野。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明技术方案的精神和范围。

Claims (5)

1.一种基于市场需求的开源软件分析方法,包括下列步骤:
步骤101、选取以针对计算机行业的招聘信息为主的招聘站点,采用通用Web爬虫技术从选取的站点爬取所有能够爬取到的招聘广告,并以HTML代码格式存储在数据库中;
步骤102、在存储下来的HTML代码基础上进行广告属性的抽取,按广告的内容分为如下几个字段:广告网址,广告标题,广告标签,创建时间,广告内容,工作类型,开发者经验,工资范围,工作地点,然后将其存储在招聘信息数据表中;
步骤103、采用软件名称与广告标签、软件标签和广告标签、软件名称和广告标题、软件标签和广告标题四组不同数据进行广告和软件的匹配,具体为如下几步:
步骤103.1、采用通用Web爬虫技术从互联网的主要项目托管社区中采集软件的项目数据,获取软件名称;
步骤103.2、采用开源全文检索工具Lucene为采集到的广告文档的文档标题、文档内容和软件名称建立文件索引;用软件名称与广告标签进行匹配;若所述文档具有与所述软件名称相同的标签,则为所述广告文档与所述开源软件建立关联,并赋予权值w1
步骤103.3、用软件名称在文档标题中进行检索,检索的过程使用开源的Lucene全文检索工具实现,具体实施为:以软件名称为关键词,从步骤103.2中建立的文件索引中搜索广告文档的标题,若文档标题中含有软件名称,则为该文档与软件建立关联,并将这次关联赋予权值w2
步骤103.4、对软件标签统计包含在广告标题中的标签个数x,计算权值w3=0.5*log2(x2+1),该权值表示以软件标签在文档标题中的出现次数作为该软件与广告文档关联程度的度量,通过权值的计算判断关联结果的可信度;
步骤103.5、在所有已建立的关联中,对关联的软件标签与广告标签进行匹配,统计在两者中都出现的标签个数y,计算权值w4=0.6*log2(y2+1);
步骤103.6、步骤103.2到步骤103.5对软件和广告的4种不同数据进行匹配,并为每一步的关联结果赋予了相应的权值,这4步匹配结束后,计算最终的权值w=w1+w2+(w1+w2)*(w3+w4),把权值超过指标的匹配结果看作是匹配成功,并将匹配结果存储在数据库中;
步骤104、从开发者经验、职位地点、软件类型反映软件市场需求数目和薪资影响,并基于开发者经验、职位地点、软件类型三个不同因素向用户推荐软件。
2.如权利要求1所述的方法,其中步骤102中,广告内容的抽取具体包括,从数据库中获取HTML代码信息并封装成自定义的页面格式,根据不同的页面查找相应的模板进行抽取,对抽取成功的结果进行输出。
3.如权利要求1所述的方法,其中步骤104进一步包括:
步骤104.1、根据用户需求确定需要进行进一步分类的已经提取广告属性字段,对数据库存放的匹配结果和抽取结果,进行属性分类、软件分类和相应的sql操作,将统计信息以可视化方式推荐给用户。
4.如权利要求3所述的方法,其中步骤104.1可进一步包括:得出市场对不同经验者的需求量和工资、不同地区的整体工资和需求量、以及同一类软件在同一城市的需求、工资软件职位数目需求信息。
5.如权利要求3所述的方法,其中步骤104.1还可以包括:在匹配广告的基础上建立同类软件关联,推荐给用户,具体的:当若干个软件都与同一广告匹配时,所述若干个软件之间的值为1,当所述若干个软件都与另一相同广告匹配时,累计为2,如此类推,当该值超过了设定的阙值,则判定两种软件为同一类软件,当用户随机选择一软件后,页面不仅仅列出该软件的需求数目和薪资需求,同时还会列出符合同类软件条件的同类软件,并生成前几名相关同类软件的需求和数目对比关系图。
CN201510617005.3A 2015-09-21 2015-09-21 一种基于市场需求的开源软件分析与比较方法 Active CN105389331B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201510617005.3A CN105389331B (zh) 2015-09-21 2015-09-21 一种基于市场需求的开源软件分析与比较方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201510617005.3A CN105389331B (zh) 2015-09-21 2015-09-21 一种基于市场需求的开源软件分析与比较方法

Publications (2)

Publication Number Publication Date
CN105389331A CN105389331A (zh) 2016-03-09
CN105389331B true CN105389331B (zh) 2019-02-12

Family

ID=55421621

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201510617005.3A Active CN105389331B (zh) 2015-09-21 2015-09-21 一种基于市场需求的开源软件分析与比较方法

Country Status (1)

Country Link
CN (1) CN105389331B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107944014A (zh) * 2017-12-11 2018-04-20 河海大学 一种基于深度学习的中文文本情感分析方法
CN108182217A (zh) * 2017-12-23 2018-06-19 合肥弹刚信息科技有限公司 一种基于移动互联网的app开发系统及发布方法
CN114462736B (zh) * 2020-11-09 2024-09-10 中核核电运行管理有限公司 一种核电厂辐射工作许可证申请的经验反馈智能推荐方法
CN113964866B (zh) * 2021-10-27 2024-02-20 黄河勘测规划设计研究院有限公司 一种单元式多能互补清洁能源基地构建方法
CN114911557B (zh) * 2022-04-28 2024-02-02 北京字跳网络技术有限公司 信息处理方法、装置、电子设备和存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156366A (zh) * 2013-05-13 2014-11-19 中国移动通信集团浙江有限公司 一种向移动终端推荐网络应用的方法和网络服务器
CN104765751A (zh) * 2014-01-07 2015-07-08 腾讯科技(深圳)有限公司 应用推荐方法及装置
CN104899143A (zh) * 2015-06-15 2015-09-09 中国航空无线电电子研究所 提供数据挖掘的软件同行评审系统实现装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150081679A1 (en) * 2013-09-13 2015-03-19 Avishek Gyanchand Focused search tool

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104156366A (zh) * 2013-05-13 2014-11-19 中国移动通信集团浙江有限公司 一种向移动终端推荐网络应用的方法和网络服务器
CN104765751A (zh) * 2014-01-07 2015-07-08 腾讯科技(深圳)有限公司 应用推荐方法及装置
CN104899143A (zh) * 2015-06-15 2015-09-09 中国航空无线电电子研究所 提供数据挖掘的软件同行评审系统实现装置

Also Published As

Publication number Publication date
CN105389331A (zh) 2016-03-09

Similar Documents

Publication Publication Date Title
US9348934B2 (en) Systems and methods for facilitating open source intelligence gathering
US8645395B2 (en) System and methods for evaluating feature opinions for products, services, and entities
CN105389331B (zh) 一种基于市场需求的开源软件分析与比较方法
US10235421B2 (en) Systems and methods for facilitating the gathering of open source intelligence
US10002189B2 (en) Method and apparatus for searching using an active ontology
CN105069103B (zh) App搜索引擎利用用户评论的方法及系统
CN104978314B (zh) 媒体内容推荐方法及装置
US20130132365A1 (en) Automatic expansion of an advertisement offer inventory
CN102890702A (zh) 一种面向网络论坛的意见领袖挖掘方法
JP2007527558A (ja) ウェブサイトなどの情報源によるナビゲーション
US20130132401A1 (en) Related news articles
US20160299891A1 (en) Matching of an input document to documents in a document collection
CN110188191A (zh) 一种用于网络社区文本的实体关系图谱构建方法和系统
CN110134845A (zh) 项目舆情监控方法、装置、计算机设备及存储介质
Ali et al. Porter stemming algorithm for semantic checking
US20210149979A1 (en) System and Method for Accessing and Managing Cognitive Knowledge
KR101864401B1 (ko) 전통문화 융복합 지원을 위한 디지털 연표 표출 시스템
Wegrzyn-Wolska et al. Tweets mining for French presidential election
CN116226494B (zh) 一种用于信息搜索的爬虫系统及方法
tong et al. Mining and analyzing user feedback from app reviews: An econometric approach
CN117252186A (zh) 基于xai的信息处理方法、装置、设备及存储介质
Yin et al. Research of integrated algorithm establishment of a spam detection system
WO2001027849A9 (en) Electronic shopping management: task models
CN113254796A (zh) 网络物件标签管理方法与系统
Christensen et al. News Hunter: a semantic news aggregator

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant