เป็นแอป Flask สำหรับอ่านและค้นหาบันทึกจากฐานความรู้ส่วนบุคคล ในที่นี้ ฐานความรู้หมายถึงชุดสมุดบันทึก Jupyter ที่มีเซลล์ Markdown ซึ่งอาจมีแท็กและอาจมีลิงก์เชื่อมโยงถึงกัน ดังนั้นแนวทางจึงคล้ายกับเซตเทลคาสเทน
คุณสมบัติของระบบค้นหาประกอบด้วย:
พื้นที่เก็บข้อมูลสามารถใช้ได้โดยรวม (โดยมีบันทึกย่อที่ฉันเขียน) หรือเป็นแพ็คเกจ Python ที่ให้อินเทอร์เฟซกับบันทึกย่อของคุณ
ส่วนที่มีค่าที่สุดของโครงการนี้ไม่ใช่ซอฟต์แวร์ มันคือบันทึกย่อนั่นเอง เมื่อเขียนสิ่งเหล่านี้ ฉันพยายามอธิบายสิ่งที่ซับซ้อนในลักษณะที่ช่วยให้เข้าใจได้อย่างมีประสิทธิภาพโดยมีความคลุมเครือน้อยที่สุด ฉันเขียนเกี่ยวกับการเรียนรู้ของเครื่องเป็นส่วนใหญ่ แต่มีหัวข้อใหม่ๆ ตามมา อนิจจา มีผู้แจกแจงที่อาจเกิดขึ้น — ณ ขณะนี้บันทึกเป็นภาษารัสเซียเท่านั้น หากไม่เหมาะกับคุณ โปรดไปที่ส่วนถัดไป
ในการเริ่มต้น คุณจะต้องโคลนพื้นที่เก็บข้อมูลไปยังเครื่องของคุณและติดตั้งแพ็คเกจ readingbricks
ซึ่งสามารถทำได้โดยการรันคำสั่งด้านล่างจากเทอร์มินัล:
cd /your/path/
git clone https://github.com/Nikolay-Lysenko/readingbricks
cd readingbricks
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
pip install -e .
ทุกครั้งที่คุณต้องการเริ่มแอปพลิเคชัน Flask ให้รันคำสั่งเหล่านี้:
cd /your/path/readingbricks
source venv/bin/activate
python -m readingbricks
คำสั่งสุดท้ายเปิดตัวเซิร์ฟเวอร์ภายในเครื่อง หลังจากพร้อมแล้ว ให้เปิดเว็บเบราว์เซอร์ของคุณแล้วไปที่ 127.0.0.1:5000
ดูคู่มืออินเทอร์เฟซสำหรับรายละเอียดเพิ่มเติม
หากต้องการสร้างฐานความรู้ของคุณเองให้เข้ากันได้กับแอป จะต้องแสดงดังต่อไปนี้:
notes_directory
├── field_one
│ ├── notebook_one.ipynb
│ ├── ...
│ └── notebook_n.ipynb
├── ...
└── field_k
├── notebook_one.ipynb
├── ...
└── notebook_m.ipynb
ในที่นี้ สาขาต่างๆ ย่อมาจากโดเมนอิสระ (เช่น การเรียนรู้ของเครื่อง เคมี ทฤษฎีดนตรี ฯลฯ) ภายในฟิลด์เฉพาะ การกระจายบันทึกระหว่างสมุดบันทึก Jupyter สามารถทำได้โดยพลการ ตัวอย่างเช่น คุณสามารถเก็บบันทึกทั้งหมดไว้ในสมุดบันทึกเดียวได้
เซลล์ทั้งหมดของสมุดบันทึกต้องเป็นเซลล์ Markdown ที่ขึ้นต้นด้วย ## {title}
หากต้องการแท็กบันทึก ให้เปิดใช้งานเครื่องมืออำนวยความสะดวกในการแท็กด้วย 'มุมมอง -> แถบเครื่องมือเซลล์ -> แท็ก' หากต้องการเพิ่มลิงก์จากบันทึกย่อหนึ่งไปยังบันทึกอื่น คุณสามารถใช้รูปแบบพิเศษ __root_url__/{field}/notes/{note_title}
และ __home_url__/notes/{note_title}
ได้ แม้ว่าอย่างหลังจะมีรายละเอียดน้อยกว่า แต่เฉพาะอย่างแรกเท่านั้นที่รองรับลิงก์ข้ามฟิลด์
จนถึงตอนนี้ดีมาก ฐานความรู้พร้อมแล้ว แต่ต้องกำหนดค่าแอปให้ใช้งานได้ สร้างไฟล์ JSON ในที่ที่มีลักษณะดังนี้:
{
"LANGUAGE" : " en " ,
"FIELDS" : [ " field_one " , " field_two " ],
"FIELD_TO_ALIAS" : { "field_one" : " Field #1 " , "field_two" : " Field #2 " },
"FIELD_TO_SEARCH_PROMPT" : { "field_one" : " the_most_popular_tag " , "field_two" : " the_most_popular_tag " },
"NOTES_DIR" : " /absolute/path/to/notes_directory " ,
"RESOURCES_DIR" : " /any/directory/for/storing/internal/files "
}
ตอนนี้ให้เราติดตั้งแพ็คเกจ Python:
source /your/path/venv/bin/activate
pip install readingbricks
สิ่งที่เหลืออยู่คือการเปิดแอป:
python -m readingbricks -c /absolute/path/to/config.json
เช่นเดียวกับในส่วนก่อนหน้า ไปที่ 127.0.0.1:5000
เว็บอินเตอร์เฟสค่อนข้างอธิบายได้ในตัว
องค์ประกอบการควบคุมที่ไม่สำคัญเพียงอย่างเดียวคือแถบค้นหาซึ่งอยู่ที่หน้าแรกของฟิลด์ สามารถทำงานได้ในสามโหมด:
transformers in recommender systems
)tags:
(เช่น tags: transformers AND recommender_systems
);tags:
สร้างแบบสอบถามภาษาธรรมชาติและสัญลักษณ์หลังจากนั้นสร้างการแสดงออกของแท็ก (เช่น transformers tags: recommender_systems
)ถ้าอย่างน้อยส่วนหนึ่งของข้อความค้นหาเป็นภาษาธรรมชาติ ผลลัพธ์จะถูกจัดเรียงตาม TF-IDF มิฉะนั้น ลำดับของผลลัพธ์จะขึ้นอยู่กับตำแหน่งพจนานุกรมของสมุดบันทึกภายในไดเร็กทอรีฟิลด์และตำแหน่งของเซลล์ภายในสมุดบันทึก
สนุกกับการอ่าน!