pip install politylink
หากคุณใช้ politylink.nlp.keyphrase ทำสิ่งต่อไปนี้ด้วยขั้นตอนเพิ่มเติม:
pip install git+https://github.com/boudinfl/pke.git
python -m nltk.downloader stopwords
GraphQlClient มีไว้เพื่อเข้าถึงจุดสิ้นสุด GraphQL ของ PolityLink
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)
ควรได้รับชื่อของตั๋วเงินสามใบที่ส่งเมื่อวันที่ 20 มกราคม 2563 ในรูปแบบ JSON
{'data': {'Bill': [{'name': '特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案'},
{'name': '地方交付税法及び特別会計に関する法律の一部を改正する法律案'},
{'name': '平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'}]}}
นอกจากนี้คุณยังสามารถใช้เมธอด get_all_* เพื่อดึงค่าคืนกลับเป็นอินสแตนซ์ของคลาส Python แทนที่จะเป็น JSON ตัวอย่างเช่น 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})です')
คุณควรได้รับ ID และชื่อของตั๋วเงินทั้งหมด ค่าส่งคืนเป็นอินสแตนซ์การเรียกเก็บเงินดังนั้นคุณสามารถเข้าถึงแต่ละฟิลด์โดยใช้จุด
207件の法律案を取得しました
最初の法律案は「地方交付税法及び特別会計に関する法律の一部を改正する法律案」(Bill:s1QZfjoCPyfdXXbrplP3-A)です
นอกจากนี้คุณยังสามารถระบุเงื่อนไขโดยผ่าน filter_ เป็นอาร์กิวเมนต์ ดูรุ่นขั้นสูงสำหรับรายละเอียดเพิ่มเติม
GraphQlClient เป็นคลาส wrapper สำหรับ 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(name='地方交付税法及び特別会計に関する法律の一部を改正する法律案'),
Bill(name='平成三十年度歳入歳出の決算上の剰余金の処理の特例に関する法律案'),
Bill(name='特定複合観光施設区域の整備の推進に関する法律及び特定複合観光施設区域整備法を廃止する法律案')]