pip install politylink
Si vous utilisez politylink.nlp.keyphrase , procédez comme suit avec une procédure supplémentaire:
pip install git+https://github.com/boudinfl/pke.git
python -m nltk.downloader stopwords
Un GraphQlClient est fourni pour accéder aux points de terminaison GraphQL de PolityLink.
from politylink.graphql.client import GraphQLClient
client = GraphQLClient()
Vous pouvez utiliser la méthode exec pour exécuter n'importe quelle requête GraphQL.
query = """
query {
Bill(filter: {submittedDate: {year: 2020, month: 1, day: 20}}) {
name
}
}
"""
client.exec(query)
Les noms des trois projets de loi soumis le 20 janvier 2020 devraient être obtenus au format JSON.
{'data': {'Bill': [{'name': '特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案'},
{'name': '地方交付税法及び特別会計に関する法律の一部を改正する法律案'},
{'name': '平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'}]}}
Vous pouvez également utiliser get_all_* pour récupérer la valeur de retour comme instance d'une classe Python plutôt que comme JSON. Par exemple, get_all_bills vous permet de récupérer les factures en tant qu'instances de facture.
bills = client.get_all_bills(fields=['id', 'name'])
first_bill = bills[0]
print(f'{len(bills)}件の法律案を取得しました')
print(f'最初の法律案は「{first_bill.name}」({first_bill.id})です')
Vous devriez obtenir l'ID et le nom de toutes les factures. La valeur de retour est une instance de facture, vous pouvez donc accéder à chaque champ à l'aide de points.
207件の法律案を取得しました
最初の法律案は「地方交付税法及び特別会計に関する法律の一部を改正する法律案」(Bill:s1QZfjoCPyfdXXbrplP3-A)です
Vous pouvez également spécifier une condition en passant filter_ comme argument. Voir la version avancée pour plus de détails.
GraphQlClient est une classe de wrapper pour SGQLC, et les requêtes peuvent également être assemblées dans le code. Par exemple, si vous assemblez la requête pour le premier exemple exec , cela ressemblerait à ceci:
from politylink.graphql.schema import Query, _BillFilter, _Neo4jDateTimeInput
from sgqlc.operation import Operation
op = Operation(Query)
filter_ = _BillFilter(None)
filter_.submitted_date = _Neo4jDateTimeInput(year=2020, month=1, day=20)
bills = op.bill(filter=filter_)
bills.name()
client.exec(op)
L' Operation assemblée est automatiquement convertie en chaîne, donc elle peut être transmise directement à exec .
Vous pouvez également transmettre le filtre créé ci-dessus comme argument à get_all_* .
client.get_all_bills(fields=['name'], filter_=filter_)
Les trois premiers projets de loi ont été obtenus sous forme d'instances de projet de loi.
[Bill(name='地方交付税法及び特別会計に関する法律の一部を改正する法律案'),
Bill(name='平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'),
Bill(name='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]