freebase получает простые имена типов и сортирует по общности - PullRequest
4 голосов
/ 08 марта 2012

Я бы хотел получить список типов по их общему имени из идентификатора бесплатной базы

{
  "id":    "/m/02mjmr", #obama
  "type":[]
}​

Как я могу вернуть имена типов вместо их идентификаторов? Выше возвращается

0: "/common/topic"xp
1: "/people/person"xp
2: "/user/robert/default_domain/presidential_candidate"xp
3: "/book/author"xp
4: "/award/award_winner"xp
5: "/book/book_subject"xp
6: "/user/robert/x2008_presidential_election/candidate"xp
7: "/government/politician"xp
8: "/organization/organization_member"xp
9: "/user/robert/default_domain/my_favorite_things"xp

И, наконец, как я могу отсортировать их по количеству? или по известности возможно?

То есть

President
Nobel Prize Winner
Author
Person

и т.д.

Возможно, что-то похожее на API известных типов, но похоже, что оно исчезнет?

http://wiki.freebase.com/wiki/Notable_types_API

Ответы [ 2 ]

3 голосов
/ 09 марта 2012

Вы можете получить имена и количество экземпляров с помощью

{
  "id": "/m/02mjmr",
  "type": [{
    "name":          null,
    "id":null,
    "/type/type/domain":{"key":[{"namespace":"/","limit":0}],"id":null}
    "/freebase/type_profile/instance_count": null,
    "sort":"/freebase/type_profile/instance_count"
  }]
}​

Одним из определений "notable" является низкая частота, так что вы можете просто инвертировать сортировку количества экземпляров, чтобы получить известность.Ограничение этого типа в «общих» Freebase исключило бы шумные пользовательские типы.Один из способов определения типов общего достояния - поиск значений свойств / type / type / domain, которые находятся в корневом пространстве имен (т. Е. Один сегмент пути, такой как / правительство)

Для вашего примера, типы общих типов с самой низкой частотой:

 43 /government/us_president     US President    /government 
 51 /people/appointer    Appointer   /people  
 73 /architecture/building_occupant  Building Occupant   /architecture 
204 /government/political_appointer  Political Appointer     /government
230 /book/poem_character     Poem character  /book  
254 /event/public_speaker    Public speaker  /event

Вы можете улучшить фильтрацию, занеся в черный список типы, которые, по вашему мнению, не характерны для вашего приложения.В настоящее время существует 2134 общих типов, и куча из них являются примитивными типами данных или вещами для использования в системе, поэтому вам не понадобится много времени, чтобы просмотреть весь список вручную.

1 голос
/ 09 марта 2012

Вас также может заинтересовать API поиска Freebase , который возвращает один или несколько известных типов с каждым результатом.Вы можете искать определенную тему по MID следующим образом:

https://www.googleapis.com/freebase/v1/search?query=/m/02mjmr&indent=true

...