(values, lsh, type='Uset', n = 128, folder_path='benchmark')
| 136 | |
| 137 | |
| 138 | def query_lsh(values, lsh, type='Uset', n = 128, folder_path='benchmark'): |
| 139 | if type=='Usem': |
| 140 | #执行选多数的操作 |
| 141 | #values_set = majority_classes(values) |
| 142 | if values[-1]==0: |
| 143 | return [] |
| 144 | values_set = [values[-1]] |
| 145 | elif type=='Uset': |
| 146 | #去重操作 |
| 147 | values_set = set(values) |
| 148 | |
| 149 | #如果这一列找不到Yago里的entity,那就跳过 |
| 150 | if len(values_set) == 0: |
| 151 | return [] |
| 152 | |
| 153 | minHash_query = MinHash(num_perm=128) |
| 154 | values = list(values_set) |
| 155 | values = [str(v) for v in values] |
| 156 | minHash_query.update_batch([v.encode('utf-8') for v in values]) |
| 157 | |
| 158 | results = lsh.query(minHash_query) |
| 159 | |
| 160 | return results |
| 161 | |
| 162 | |
| 163 | #根据minhash lsh的分桶结果来计算u_set分数的分布 |
nothing calls this directly
no test coverage detected