1

Après avoir utilisé l'API Google Cloud Vision, j'ai reçu les valeurs MID au format /m/XXXXXXX (pas nécessairement 7 caractères à la fin). Ce que je voudrais faire est de déterminer à quel point une valeur MID est comparée aux autres. Essentiellement dans quelle mesure un terme est large ou raffiné. Par exemple, le terme véhicule pourrait être niveau 1 tandis que le terme Van pourrait être niveau 2.Déterminer le niveau de hiérarchie catégorique de la valeur MID de la base Freebase

J'ai essayé d'exécuter les valeurs MID à l'aide de l'API Google Knowledge Graph, mais ces MID ne sont malheureusement pas dans cette base de données et ne renvoient aucune information. Par exemple, quelques descriptions et MIDs j'ai sont les suivantes:

/m/07s6nbt = text 
/m/03gq5hm = font 
/m/01n5jq = poster 
/m/067408 = album cover 

Ma première pensée pourquoi ces MIDs retournent rien dans l'API graphique est la connaissance qu'ils ont pas été reportées après l'arrêt de Freebase. Je comprends que Google fournit un vidage RDF de Freebase, mais je ne suis pas sûr de savoir comment lire ces données en Python et l'utiliser pour déterminer la profondeur d'un mid dans la hiérarchie.

S'il n'est pas possible de déterminer le niveau de catégorie de la valeur MID, le nombre de connexions d'un terme serait également un proxy approprié. En supposant que les termes plus larges ont plus de liens avec d'autres termes que des termes plus raffinés. J'ai trouvé an article qui discute la quantité de "bords" un MID qui, je crois, signifie le nombre de connexions. Cependant, ils font un peu de conversion entre les valeurs MID en valeurs longues et utilisent divers scripts qui continuent à me donner de nombreuses erreurs en Python. J'espérais un tableau simple avec des valeurs MID dans une colonne et le nombre de connexions dans un autre mais je suis perdu dans leur code, la conversion des valeurs, et les erreurs Python.

Si vous avez des suggestions pour déterminer facilement le nombre de connexions d'un MID ou son niveau hiérarchique, il serait grandement apprécié. Je vous remercie!

Répondre

1

Ces MID ressemblent à des choses assez communes, alors je suis surpris qu'ils ne soient pas dans le Knowledge Graph. Préférez-vous les MID pour former des URI? Freebase et Knowledge Graph ne sont pas organisés en tant que hiérarchies, donc votre idée de recherche de niveau ne fonctionne pas vraiment. Je doute aussi que votre idée du degré (c.-à-d. Le nombre d'arêtes) soit corrélée avec le plus large plutôt que le plus étroit, mais vous devriez pouvoir utiliser la sauvegarde que vous avez trouvée pour la tester.

Le Freebase EXQ Vidage des données que vous avez trouvé est super confus parce qu'ils renomment Freebase types comme topics (à ne pas confondre avec Freebase topics), mais je pense que leur freebase-nodes-in-out-name.tsv contient des informations que vous cherchez (# d'arêtes = = degré). Vous pouvez utiliser soit le inDegree, outDegree ou la somme des deux. Leur code de conversion MID à Integer ne me semble pas correct (et ne correspond pas aux commentaires), mais vous devrez utiliser une implémentation compatible pour correspondre à ce qu'ils ont fait.

Regarder

/m/02w0000 "Clibadium subsessilifolium"@en 

c'est encodée comme

48484848875048 

ou

48 48 48 48 87 50 48 
0 0 0 0 w 2 0 

Alors, prenez les valeurs ASCII de droite à gauche et concaténer les de gauche à droite. Confus, inefficace, et faux tout en un! (C'est en fait un codage de base 36 (ou 37?)