Project:Similar By Terms
Version:6.x-1.9
Component:Miscellaneous
Category:feature request
Priority:minor
Assigned:Unassigned
Status:closed (works as designed)

Issue Summary

Great module! What I mean by weight factor is easy to explain with a (silly) example. Assume that the similarterms is a way to find similar artists. Let assume that each artist (in their content profile) has a freetagging to place musical styles. If there are many artists that tag themselves as "experimental" that means that the "similarterms" has to choose some of them (it would be nice to select how many) based on same weighting factor (hits maybe since it's equal to popularity ??). That's what I mean weight factor. Just planting seeds here :)

Comments

#1

Status:active» postponed (maintainer needs more info)

Nodes don't have weights be default. Taxo do. So I could adjust the modules to make Experimental used less of a factor but I couldn't make a certain artist rise or lower and the module already has a option to make lessor used taxo terms to be more of a factor the more used terms.

Thanks
Robert

#2

Thanks for the reply.
I've been dealing with Drupal just several weeks and I have no knowledge of programming so what I am saying might be totally wrong , so excuse my ignorance in any case!
I think that nodes don't need weight for this to happen. The node is just the mean to the term of the taxonomy. The process is that the module checks for relation between nodes based on terms. Related nodes can be two or can be 1000. Surely from those one thousand , some are more related based on more than one term relation (two nodes with 5 similar term is more related with two nodes of 3 terms). But this is a filtering process , not sorting one. But it is equally useful to suggest nodes that are more popular than others (by checking the Statistics core module) and this will be the sorting order. Imagine something like the core Seach module that you define content ranking with weight factors! I hope it's understood since I ain't no native speaker and it's 3'o clock am and I am going to collapse any moment now :)

#3

Charos,

I was justing using your example. We currently have two methods of sorting. 1) Based on the most number of matching terms. 2) Based on lest used terms so if if you have 1000 nodes and 900 of them have the term experimental and 100 have alternative similar term will match by Alternative instead of experimental.

If I am reading you right you are looking for 1 of 2 sorting methods. 1) Weighted using the term weights for determining the sort order. That can be done just need to look at adding the sort. 2) using something like the Statistics module to figure out what terms are viewed the most and sorting based on that. It could be done but might run a foul with the cache system and be pretty complex to setup.

Thanks
Robert

#4

Thanks a lot for the elaboration Robert.
I think I understood the process!

#5

Hi,

I need your assistance to get this useful module to use weighting of terms or factors to sort results.

Consider for example a node type "book" which has three vocabularies: "category", "publisher" and "language".

A book called Book_main which is a "computer" book in "english" from the "drupal.org" publisher will have 67% similarity with the two books below:

Book_1: A "history" book in "english" from "drupal.org"
Book_2: A "computer" book in "french" from "drupal.org"

I need to get all the english books first because the reader would less likely be interested in french books (language vocab would have a higher weight). So maybe using the weight can help or alternatively introducing a factor concept where the user can give each vocab a level of importance (the factor) which could be used in calculating the similarity.

In our example if category has a factor of 2, language has 3 and publisher has 1, the similarities with Book_main will be:

Book_1: 67% (0+3+1 / 6)
Book_2: 50% (2+0+1 / 6)

Thus, english book will be the first in the list.

Another alternative -less attracting- is to exclude all books which are not in the same language, maybe this can be done using views argument but I don't know how! If you know please tell me.

Thanks in advance.

--
Amine

#6

Status:postponed (maintainer needs more info)» active

#7

Status:active» closed (works as designed)

#5 Lang has always been taken into account. I exclude all nodes not in the same lang as the node.

2.x with views works diff and I am closing all 1.x tickets.

Thanks
Robert

nobody click here