politylink common
1.0.0
pip install politylink
politylink.nlp.keyphrase 사용하는 경우 추가 절차로 다음을 수행하십시오.
pip install git+https://github.com/boudinfl/pke.git
python -m nltk.downloader stopwords
PolityLink의 GraphQL 엔드 포인트에 액세스하기 위해 GraphQLClient가 제공됩니다.
from politylink.graphql.client import GraphQLClient
client = GraphQLClient()
exec 메소드를 사용하여 GraphQL 쿼리를 실행할 수 있습니다.
query = """
query {
Bill(filter: {submittedDate: {year: 2020, month: 1, day: 20}}) {
name
}
}
"""
client.exec(query)
2020 년 1 월 20 일에 제출 된 세 법안의 이름은 JSON 형식으로 얻어야합니다.
{'data': {'Bill': [{'name': '特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案'},
{'name': '地方交付税法及び特別会計に関する法律の一部を改正する法律案'},
{'name': '平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'}]}}
get_all_* 메소드를 사용하여 JSON이 아닌 Python 클래스의 인스턴스로 리턴 값을 검색 할 수도 있습니다. 예를 들어, get_all_bills 사용하면 청구서를 청구서로 검색 할 수 있습니다.
bills = client.get_all_bills(fields=['id', 'name'])
first_bill = bills[0]
print(f'{len(bills)}件の法律案を取得しました')
print(f'最初の法律案は「{first_bill.name}」({first_bill.id})です')
모든 청구서의 신분증과 이름을 받아야합니다. 반환 값은 청구서 인스턴스이므로 점을 사용하여 각 필드에 액세스 할 수 있습니다.
207件の法律案を取得しました
最初の法律案は「地方交付税法及び特別会計に関する法律の一部を改正する法律案」(Bill:s1QZfjoCPyfdXXbrplP3-A)です
filter_ 인수로 전달하여 조건을 지정할 수도 있습니다. 자세한 내용은 고급 버전을 참조하십시오.
GraphQLClient는 SGQLC의 래퍼 클래스이며 쿼리는 코드로 조립할 수도 있습니다. 예를 들어 첫 번째 exec 예제에 대한 쿼리를 조립하면 다음과 같습니다.
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)
조립 된 Operation 자동으로 문자열로 변환되므로 exec 로 직접 전달할 수 있습니다.
위에서 만든 필터 _을 get_all_* 메소드에 인수로 전달할 수도 있습니다.
client.get_all_bills(fields=['name'], filter_=filter_)
처음 세 가지 청구서는 Bill Instances로 얻었습니다.
[Bill(name='地方交付税法及び特別会計に関する法律の一部を改正する法律案'),
Bill(name='平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'),
Bill(name='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]