|
|
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
Доброго времени суток! нужно написать тоже самое, только на php это кусок кода для рекомендательных сервисов из книги Тоби Сегарана в особенности я не поняла, что такое item заранее всем огромное спасибо) # Возвращает коэффициент корреляции Пирсона между p1 и p2 def sim_pearson(prefs,p1,p2): # Получить список предметов, оцененных обоими si={} for item in prefs[p1]: if item in prefs[p2]: si[item]=1 # Найти число элементов n=len(si) # Если нет ни одной общей оценки, вернуть 0 if n==0: return 0 # Вычислить сумму всех предпочтений sum1=sum([prefs[p1][it] for it in si]) sum2=sum([prefs[p2][it] for it in si]) # Вычислить сумму квадратов sum1Sq=sum([pow(prefs[p1][it],2) for it in si]) sum2Sq=sum([pow(prefs[p2][it],2) for it in si]) # Вычислить сумму произведений pSum=sum([prefs[p1][it]*prefs[p2][it] for it in si]) # Вычислить коэффициент Пирсона num=pSum-(sum1*sum2/n) den=sqrt((sum1Sq-pow(sum1,2)/n)*(sum2Sq-pow(sum2,2)/n)) if den==0: return 0 r=num/den return r ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 00:06:04 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
anonirus, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 06:15:28 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
r u, Последние три строчки можно и в тернарный оператор засунуть. Код: php 1. 2. 3. Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 10:01:20 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
Код: php 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 10:07:19 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
r u, $pSum += $sum1*$sum2; заменить на $pSum += $prefs[$p1][$it]*$prefs[$p2][$it]; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 12:15:32 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
спасибо вам огромное!! а вы не могли бы ещё вот это перевести # Возвращает список наилучших соответствий для человека из словаря prefs. # Количество результатов в списке и функция подобия – необязательные # параметры. def topMatches(prefs,person,n=5,similarity=sim_pearson): scores=[(similarity(prefs,person,other),other) for other in prefs if other!=person] # Отсортировать список по убыванию оценок scores.sort( ) scores.reverse( ) return scores[0:n] # Получить рекомендации для заданного человека, пользуясь взвешенным средним # оценок, данных всеми остальными пользователями def getRecommendations(prefs,person,similarity=sim_pearson): totals={} simSums={} for other in prefs: # сравнивать меня с собой же не нужно if other==person: continue sim=similarity(prefs,person,other) # игнорировать нулевые и отрицательные оценки if sim<=0: continue for item in prefs[other]: # оценивать только фильмы, которые я еще не смотрел if item not in prefs[person] or prefs[person][item]==0: # Коэффициент подобия * Оценка totals.setdefault(item,0) totals[item]+=prefs[other][item]*sim # Сумма коэффициентов подобия simSums.setdefault(item,0) simSums[item]+=sim # Создать нормализованный список rankings=[(total/simSums[item],item) for item,total in totals.items( )] # Вернуть отсортированный список rankings.sort( ) rankings.reverse( ) return rankings >> reload(recommendations) >> recommendations.topMatches(recommendations.critics,'Toby',n=3) >>> reload(recommendations) >>> recommendations.getRecommendations(recommendations.critics,'Toby') >>> recommendations.getRecommendations(recommendations.critics,'Toby', ... similarity=recommendations.sim_distance) опять же, заранее всех благодарю)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 15:13:11 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
anonirus, А самому? Хотя, впрочем, дядя r u переведёт. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 15:22:37 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
ShSerge, я до сих пор, к сожалению, так и не поняла python...вчера пол дня над ним просидела и без особых результатов извините, если слишком настойчива.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 15:27:18 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
anonirus, Пардон! Я не знал, что Вы женского полу. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2012, 16:00:17 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
будьте человеками! мне больше не у кого попросить настоящий питерский шоколад моему спасителю прямо в руки почтой России))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2012, 11:08:40 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
anonirus, Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 07:14:08 |
|
||
|
(python, php) Помогите, пожалуйста, перевести код
|
|||
|---|---|---|---|
|
#18+
anonirus, из за отсутствия отступов возможно я гдето и ошибся. надо проверять Код: php 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.05.2012, 07:35:10 |
|
||
|
|

start [/forum/topic.php?fid=23&msg=37788715&tid=1465130]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
187ms |
get topic data: |
8ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 193ms |
| total: | 469ms |

| 0 / 0 |
