python包,它根据两个项的标记相关度得分计算它们之间的相似性,并将项列表及其对应的顶级项邻居写入文件。
SimilarityCalculator的Python项目详细描述
#SimilarityCalculator
*使用并行处理和高效的C实现快速计算项列表之间的相似性;并且
将每个项的顶级邻居(最相似的项)打印到文件中。*
[构建状态](https://travis-ci.org/smltahir/similaritycalculator.svg?branch=master)](https://travis ci.org/smltahir/similaritycalculator)
为了最大限度地保证不出现错误,travis ci测试链接到源github存储库。travis对推送到github的最新代码运行几个
单元测试,并显示一个指示**build_passing**或
**build_failing**的标记。由于该项目目前正在持续开发中,因此建议只使用作为代码版本发布的稳定版本。
similaritycalculator当前在python版本上运行:*2.6*,*2.7*,*pypy*
如何运行:
将**pythonpath**环境变量设置为python bin目录
**runnable modules**:
-load-neighbors.py
-test/unit-tests-load-neighbors.py
load-neighbors:
加载邻居。py
```
单元测试:
`````
python测试/单元测试加载邻居。py
````
获取任何可运行模块的信息:
*python<;modulename.py>;-h
*python<;modulename.py>;--帮助
这将告诉您如何运行程序及其可用的命令行参数。
应遵循similaritycalculator/data/samples/作为从外部模块运行工具的模型。
因此,它非常快速和高效。如果用户希望在
相似性和最近邻计算期间使用较少的cpu,则应适当设置**cpu数量**配置参数。
其默认值为**max**。
使用余弦相似度计算项目之间的相似度。我们目前正在努力将代码扩展到包含更多度量值。
**config.json**-这是最通用的配置文件。此处存储您不打算经常更改其值的参数。这些通常包括输入/输出文件路径等。**config.test.json**-此文件应用于测试参数或您计划经常更改其值的参数。这可以包括CPU数量、邻域大小等
3。**config.local.json**-此文件未写入github存储库,必须在首次使用代码时创建。这用于存储本地和私有参数及其值。**不要**将这些
参数存储在任何其他配置文件中。
如果在两个或多个文件中设置了相同的配置参数,则分配顺序如下。
config.local.json>;config.test.json>;json
这意味着如果在本地和测试配置文件中都设置了参数,那么config.test中的
参数值将被config.local等覆盖。
这些文件中需要修改以下参数。
1.**CPU数量**
*示例条目*:
"CPU数量":2
*默认输入*:
"CPU数量":"max"
如果用户没有更改,
默认值为"max",这意味着将使用最大可用CPU进行计算。对于
大型数据集以及需要快速计算时,请使用此选项。此参数的最小值为1。
>2。**文件相关性预测**
*示例条目*:
"文件相关性预测":"正确/路径/插入/此处/示例文件.csv"
*默认条目*:
"文件相关性预测":"数据/相关性预测.txt"
主输入文件的路径。建议将所有数据文件存储在similaritycalculator/data/
目录中。输入文件可以是.txt、.csv(逗号分隔)或.tsv(制表符分隔)文件。
它包含3个值:
)只要在
**输入字段分隔符**配置参数中声明,就可以用任何**输入字段分隔符**替换(见下文)。
item1是需要对其执行最近邻分析的集合的实体。item2(以下称为
**tag**)是用作比较item1集合的两个实体的度量的实体。
*示例1:
用于检查两部电影的相似程度,这取决于它们在不同类型中的分类程度。分数的标准化是在程序内完成的,因此在准备所需的输入文件时,不必担心这一点。
*示例2:
userid,movieid,rating
1,96,4.5
1,54,2.0
2,96,5.0
2,54,1.0
3,96,3.0
3,54,4.0
similaritycalculator/data/samples/directory。
此代码已在包含多达250万行的数据文件上成功测试。
3.**输入字段分隔符**
*示例条目*(制表符空格):
"输入字段分隔符":"\t"
*默认条目*(逗号):
"输入字段分隔符":","
这是标记(空格、制表符空格、逗号、冒号、分号,用于分隔
输入文件的两个字段。上面可以看到一些例子。
4.**标记加权**
*有效条目*:
"标记加权":"t"
"标记加权":"f"
*默认条目*:
"标记加权":"f"
此配置参数只能接受两个值-"t"(true)和"f"(假)默认情况下,它的值是f,这意味着标签的权重都是相等的(=1.0)。当某些标记(如上所述)需要
以不同于其他标记的方式进行加权时,请指定值"t"。如果希望某些标记在确定
最近的邻居时发挥更大的作用,则可能会发生这种情况。
5.**文件标记权重**
*示例条目*:
"文件标记权重":"正确/路径/插入/此处/示例标记文件.csv"
*默认条目*:
"file_tag_weights":"data/tagweights.txt"
这是一个可选的输入文件。只有当参数
**tag_weighted**设置为"t"(true)时,才会考虑此参数的值。此文件的格式如下:
tag,tag_weight
请保留文件的第一行作为标题行,以提高可读性。
逗号(,)只要在
**输入字段分隔符**配置参数中声明,就可以用任何**输入字段分隔符**替换(见上文)。下面是一个制表符分隔的示例。
*示例*:
"taga"2.3
"tagb"1.0
"tagc"-2.0
**请注意**:如果包含此文件,**所有**标记都必须指定权重。
6。**文件邻居**
*示例条目*:
"文件邻居":"正确/路径/插入/此处/示例文件.txt"
*默认条目*:
"文件邻居":"数据/邻居.txt"
存储最终输出文件的位置。建议将其存储在
similaritycalculator/data/目录中,默认情况下是这样做的。生成的文件格式如下:
itemID,neighbor1,相似度评分
*示例*:
1 1 4.7657
1 2 4.6790
1 4 4.4423
1 5 4.4208
13 2.8345
2 4.7657
2 1 4.6790
2 4 4.5840
2 5 4.5061
2 3 2.9758
相似性得分按
的降序排列。这意味着最近的邻居将显示在顶部。
7.**邻域大小**
*示例条目*:
"邻域大小":50
*默认条目*:
"邻域大小":250
这决定了您希望程序计算每个项目的顶级邻域的数量。如果该值
设置为大于项目总数,则所有项目都将与其相似性分数一起打印,作为每个项目的
邻居。
8.**日志名称**
*示例条目*:
"日志名称":"正确/路径/插入/此处/示例文件.txt"
*默认条目*:
"日志名称":"日志/加载邻居.txt"
计划的一部分。建议将其存储在
similaritycalculator/logs/目录中,这是默认情况下的操作。
9。**项目1_列编号**
*示例条目*:
"项目1_列编号":4
*默认条目*:
"项目1_列编号":0
属于itemid1集合(如前所定义)的实体。当输入文件是一个
多列文件时,它特别有用,因为它不是专门为模拟计算器程序准备的输入文件。
*示例*:
movieid,budget,boxofficesales,genre,relevancescore(genretomovieid)
1,87,76,"action",0.50
1,87,76,"喜剧",0.75
2,45,30,"动作",0.67
2,45,30,"喜剧",0.30
3,95110,"动作",0.98
3,95110,"喜剧",0.10
我们将设置
"item1_column_no":0
"item2_column_no":3
"相关性"core_column_no":4
**注**:此处的列编号从0开始,而不是从1开始。
有关上述示例中显示的其他两个参数的说明,请参阅下面相应的部分。
10。**item2_列编号**
*示例条目*:
"item2_列编号":4
*默认条目*:
"item2_列编号":1
属于itemid2集合的实体(如前所定义)。当输入文件是一个
多列文件,而不是专门为similaritycalculator程序准备的输入文件时,它特别有用。
请参考上面的示例,了解此参数的用法。
11。**关联度评分栏**
*示例条目*:
"关联度评分栏编号":1
*默认条目*:
"关联度评分栏编号":2
此参数告诉程序.csv/.tsv的哪一列*相关性预测*文件它可以找到属于相关性得分集(如前所述)的
实体。当输入文件
是多列文件,而不是专门准备作为SimilarityCalculator程序的输入时,它特别有用。
请参阅上面的示例以了解此参数的用法。
*使用并行处理和高效的C实现快速计算项列表之间的相似性;并且
将每个项的顶级邻居(最相似的项)打印到文件中。*
[构建状态](https://travis-ci.org/smltahir/similaritycalculator.svg?branch=master)](https://travis ci.org/smltahir/similaritycalculator)
为了最大限度地保证不出现错误,travis ci测试链接到源github存储库。travis对推送到github的最新代码运行几个
单元测试,并显示一个指示**build_passing**或
**build_failing**的标记。由于该项目目前正在持续开发中,因此建议只使用作为代码版本发布的稳定版本。
similaritycalculator当前在python版本上运行:*2.6*,*2.7*,*pypy*
如何运行:
将**pythonpath**环境变量设置为python bin目录
**runnable modules**:
-load-neighbors.py
-test/unit-tests-load-neighbors.py
load-neighbors:
加载邻居。py
```
单元测试:
`````
python测试/单元测试加载邻居。py
````
获取任何可运行模块的信息:
*python<;modulename.py>;-h
*python<;modulename.py>;--帮助
这将告诉您如何运行程序及其可用的命令行参数。
应遵循similaritycalculator/data/samples/作为从外部模块运行工具的模型。
因此,它非常快速和高效。如果用户希望在
相似性和最近邻计算期间使用较少的cpu,则应适当设置**cpu数量**配置参数。
其默认值为**max**。
使用余弦相似度计算项目之间的相似度。我们目前正在努力将代码扩展到包含更多度量值。
**config.json**-这是最通用的配置文件。此处存储您不打算经常更改其值的参数。这些通常包括输入/输出文件路径等。**config.test.json**-此文件应用于测试参数或您计划经常更改其值的参数。这可以包括CPU数量、邻域大小等
3。**config.local.json**-此文件未写入github存储库,必须在首次使用代码时创建。这用于存储本地和私有参数及其值。**不要**将这些
参数存储在任何其他配置文件中。
如果在两个或多个文件中设置了相同的配置参数,则分配顺序如下。
config.local.json>;config.test.json>;json
这意味着如果在本地和测试配置文件中都设置了参数,那么config.test中的
参数值将被config.local等覆盖。
这些文件中需要修改以下参数。
1.**CPU数量**
*示例条目*:
"CPU数量":2
*默认输入*:
"CPU数量":"max"
如果用户没有更改,
默认值为"max",这意味着将使用最大可用CPU进行计算。对于
大型数据集以及需要快速计算时,请使用此选项。此参数的最小值为1。
>2。**文件相关性预测**
*示例条目*:
"文件相关性预测":"正确/路径/插入/此处/示例文件.csv"
*默认条目*:
"文件相关性预测":"数据/相关性预测.txt"
主输入文件的路径。建议将所有数据文件存储在similaritycalculator/data/
目录中。输入文件可以是.txt、.csv(逗号分隔)或.tsv(制表符分隔)文件。
它包含3个值:
)只要在
**输入字段分隔符**配置参数中声明,就可以用任何**输入字段分隔符**替换(见下文)。
item1是需要对其执行最近邻分析的集合的实体。item2(以下称为
**tag**)是用作比较item1集合的两个实体的度量的实体。
*示例1:
用于检查两部电影的相似程度,这取决于它们在不同类型中的分类程度。分数的标准化是在程序内完成的,因此在准备所需的输入文件时,不必担心这一点。
*示例2:
userid,movieid,rating
1,96,4.5
1,54,2.0
2,96,5.0
2,54,1.0
3,96,3.0
3,54,4.0
similaritycalculator/data/samples/directory。
此代码已在包含多达250万行的数据文件上成功测试。
3.**输入字段分隔符**
*示例条目*(制表符空格):
"输入字段分隔符":"\t"
*默认条目*(逗号):
"输入字段分隔符":","
这是标记(空格、制表符空格、逗号、冒号、分号,用于分隔
输入文件的两个字段。上面可以看到一些例子。
4.**标记加权**
*有效条目*:
"标记加权":"t"
"标记加权":"f"
*默认条目*:
"标记加权":"f"
此配置参数只能接受两个值-"t"(true)和"f"(假)默认情况下,它的值是f,这意味着标签的权重都是相等的(=1.0)。当某些标记(如上所述)需要
以不同于其他标记的方式进行加权时,请指定值"t"。如果希望某些标记在确定
最近的邻居时发挥更大的作用,则可能会发生这种情况。
5.**文件标记权重**
*示例条目*:
"文件标记权重":"正确/路径/插入/此处/示例标记文件.csv"
*默认条目*:
"file_tag_weights":"data/tagweights.txt"
这是一个可选的输入文件。只有当参数
**tag_weighted**设置为"t"(true)时,才会考虑此参数的值。此文件的格式如下:
tag,tag_weight
请保留文件的第一行作为标题行,以提高可读性。
逗号(,)只要在
**输入字段分隔符**配置参数中声明,就可以用任何**输入字段分隔符**替换(见上文)。下面是一个制表符分隔的示例。
*示例*:
"tagb"1.0
"tagc"-2.0
**请注意**:如果包含此文件,**所有**标记都必须指定权重。
6。**文件邻居**
*示例条目*:
"文件邻居":"正确/路径/插入/此处/示例文件.txt"
*默认条目*:
"文件邻居":"数据/邻居.txt"
存储最终输出文件的位置。建议将其存储在
similaritycalculator/data/目录中,默认情况下是这样做的。生成的文件格式如下:
itemID,neighbor1,相似度评分
*示例*:
1 1 4.7657
1 2 4.6790
1 4 4.4423
1 5 4.4208
13 2.8345
2 4.7657
2 1 4.6790
2 4 4.5840
2 5 4.5061
2 3 2.9758
相似性得分按
的降序排列。这意味着最近的邻居将显示在顶部。
7.**邻域大小**
*示例条目*:
"邻域大小":50
*默认条目*:
"邻域大小":250
这决定了您希望程序计算每个项目的顶级邻域的数量。如果该值
设置为大于项目总数,则所有项目都将与其相似性分数一起打印,作为每个项目的
邻居。
8.**日志名称**
*示例条目*:
"日志名称":"正确/路径/插入/此处/示例文件.txt"
*默认条目*:
"日志名称":"日志/加载邻居.txt"
计划的一部分。建议将其存储在
similaritycalculator/logs/目录中,这是默认情况下的操作。
9。**项目1_列编号**
*示例条目*:
"项目1_列编号":4
*默认条目*:
"项目1_列编号":0
属于itemid1集合(如前所定义)的实体。当输入文件是一个
多列文件时,它特别有用,因为它不是专门为模拟计算器程序准备的输入文件。
*示例*:
movieid,budget,boxofficesales,genre,relevancescore(genretomovieid)
1,87,76,"action",0.50
1,87,76,"喜剧",0.75
2,45,30,"动作",0.67
2,45,30,"喜剧",0.30
3,95110,"动作",0.98
3,95110,"喜剧",0.10
我们将设置
"item1_column_no":0
"item2_column_no":3
"相关性"core_column_no":4
**注**:此处的列编号从0开始,而不是从1开始。
有关上述示例中显示的其他两个参数的说明,请参阅下面相应的部分。
10。**item2_列编号**
*示例条目*:
"item2_列编号":4
*默认条目*:
"item2_列编号":1
属于itemid2集合的实体(如前所定义)。当输入文件是一个
多列文件,而不是专门为similaritycalculator程序准备的输入文件时,它特别有用。
请参考上面的示例,了解此参数的用法。
11。**关联度评分栏**
*示例条目*:
"关联度评分栏编号":1
*默认条目*:
"关联度评分栏编号":2
此参数告诉程序.csv/.tsv的哪一列*相关性预测*文件它可以找到属于相关性得分集(如前所述)的
实体。当输入文件
是多列文件,而不是专门准备作为SimilarityCalculator程序的输入时,它特别有用。
请参阅上面的示例以了解此参数的用法。