Cần tool auto replace và tool lọc tên bằng Java hoặc Python

  1. Decepticon

    Decepticon Thành viên kích hoạt

    Tham gia ngày:
    24/4/13
    Bài viết:
    950
    Được thích:
    266
    Như tít, hàng lão Big chạy ngon nhưng lâu lâu lại quên mợ nó cách sài != =). Các lão @Thánh Lư Đại Nhân, @Darkrai9x, @nhymxu, @Zzbaivong mau vô giúp ta nào!

    1/ Đầu tiên là lọc cụm từ viết hoa theo tần số. Ví dụ ta chọn text nguồn rồi nhập tần số tối thiểu = 2 thì file kết quả sẽ là một danh sách sắp xếp thứ tự theo tần số:

    Tát Lạc Mông
    Ngả Khẳng
    A Lý Khuê Ân


    2/ Tool còn lại thì cần một file date chứa dữ liệu như thế này
    Mã:
    // Các dòng sửa lỗi có dạng:
    // <lỗi>=<sửa>=<option1>=<option2>
    // option1: 0 = normal; 1 = extended; 2 = regex
    // option2: 512 = normal; 513 = whole word; 514 = match case; 515 = match case + whole word
    
    alf=là=0=513
    ânh=ảnh=0=513
    bj=bị=0=513
    ây=ấy=0=515
    bân=bản=0=515
    kh[oôồ]ng=không=2=512
    ti.ng=tiếng=2=512
    Ngả Khẳng=Naga=0=512
    Tát Lạc Mông=Talmon=0=512
    A Lý Khuê Ân=Alibaba=0=512
    Alibaba tính toán rất rõ ràng. Lúc đầu muốn giết Talmon, hắn không có gì phải sợ. Dù sao Talmon cũng là tốn hao tài phú của Bác Y gia tộc và một nhân tình mới được Naga hỗ trợ. Cho thấy Naga không coi trọng. Nếu như Naga không lấy tài phú ban cho Talmon một giọt Chủ thần lực, vậy mới gọi là coi trọng. “Giết Talmon không sao, nhưng giết Bối Bối, mặc dù tỷ lệ phát hiện không cao, nhưng bị phát hiện, ta hẳn phải chết không thể nghi ngờ”Alibaba
    không hề muốn chọc vào Bối Lỗ Đặc.

    Ngoài ra cái QT nát quá rồi lão nào build đc pm thay thế nó thì quả là công đức vô lượng. yy198

    1. Dữ liệu vp quá lộn xộn nhiều rác, gần như ko thể khai thác sức mạnh cộng đồng. Dữ liệu người này merge với người kia sẽ thành một mớ hổ lốn đầy rác.
    Fix:
    thêm tùy chọn Danh từ, Động từ, Tình từ, tùy chọn này chỉ xuát hiện khi update Vietphrase2. Ví dụ trong ảnh, 手机=smarthphone sẽ được thêm vào vietphrase2.txt và danhtu.txt.

    Dữ liệu danhtu.txt, dongtu.txt, tinhtu.txt có tác dụng chia sẻ cộng đồng và rút gọn triệt để vietphrase.txt (lý do nêu ở mục 2). Như vậy sẽ tránh được tình trạng phát sinh rác do 80% người dùng QT biết tiếng Việt. Tất nhiên sẽ cần một công cụ nhỏ na ná QuickVietPhraseMerger để merge dữ liệu.

    [​IMG]


    2. QT có một tính năng siêu đột phá là Luatnhan nhưng nó chưa được tối ưu triệt để, việc chạy luatnhan với vietphrase còn rất chậm, cực kỳ chậm.
    Fix:
    Luatnhan cần một thuật toán nhân với nhân {0} gồm Vietphrase, Danhtu, Names và Names2. Những từ, cụm từ không có khả năng làm nhân sẽ ném vào Vietphrase2.txt để giảm tải dữ liệu phải xử lý. Trong tương lai có thể bổ xung nhân {1}, {2}... tương ứng cho động từ, tính từ.

    Ngoài ra còn cần Luật nhân chấp nhận dấu câu .,? cùng ký tự đại diện đầu dòng ^, cuối dòng $
    Mã:
    ^{0}的手里=Trong tay {0}
    . {0}的手里=. Trong tay {0}
    , {0}的手里=, trong tay {0}

    3. Dịch trực tiếp trên QT chưa tốt
    Fix:
    - thêm tính năng auto scroll, tức là 1 ô nào đó kéo xuống thì các ô còn lại như [Viet], [Trung] và [Han Viet] cũng kéo xuống theo ==> tránh tình trạng dịch sót.
    - chuyển tính năng Find and Replace ở ô [Trung] sang cho ô [Viet]


    4. QT thiếu mất một bước sau cùng rất quan trọng đó là xử lý lỗi tiếng việt.
    Fix:
    Các lỗi linh tinh chứa trong sualoi.txt sẽ được xử lý sau cùng.
    Mã:
    biệt* ôm=đừng ôm
    biệt* ăn=đừng ăn
    biệt* đào=đừng đào
    biệt* đương=đừng tiếp tục
    tại* ngủ=đương ngủ
    tại* ngửi=đương ngửi
    tại* nghĩ=đương nghĩ
    một đem* súng=một khẩu súng
     
    Chỉnh sửa cuối: 29/3/17
  2. Chpn

    Chpn Đại Boss

    Tham gia ngày:
    3/9/15
    Bài viết:
    222,434
    Được thích:
    233,516
    Ý tưởng hay... ngồi hóng
     
  3. yuhnb

    yuhnb Thành viên kích hoạt

    Tham gia ngày:
    11/3/17
    Bài viết:
    3
    Được thích:
    8
    Đây là Script bằng Python, theo yêu cầu thứ 1:

    Chạy Script đường dẫn phải có extension .txt

    Tên có thể từ 2 đến 5 chữ

    Mã:
    # -*- coding: utf-8 -*-
    import regex
    from collections import Counter
    import io
    import os
    
    
    # Đường dẫn đến file cần xử lý:
    user_input = input("Path đến file Txt cần xử lý: ")
    assert os.path.exists(user_input), "Không tìm thấy file, "+str(user_input)
    
    # Mở file lên, encode, read
    with io.open(user_input, 'r',encoding='utf-8') as file:
        source_text = file.read()
    
    # Tìm tên và sort theo thứ tự
    matches = Counter(regex.findall(r'\p{Lu}\w*(?:\s\p{Lu}\w*){1,5}',source_text)).most_common()
    toi_thieu = int(input("Điền số lần tối thiểu xuất hiện: "))
    for k,v in matches:
        if v > toi_thieu:
            print(k,v,)
    file.close()
    
    [​IMG]


    Còn yêu cầu thứ 2 không hiểu lắm
     
    Chỉnh sửa cuối: 27/5/17
    Decepticon and Chpn like this.
  4. Decepticon

    Decepticon Thành viên kích hoạt

    Tham gia ngày:
    24/4/13
    Bài viết:
    950
    Được thích:
    266
    @yuhnb: nó là cái tool auto replace đó lão. thường dùng để fix lỗi chính tả văn bản và fix name truyện


    [​IMG]

    // option2: 512 = normal; 513 = whole word; 514 = match case; 515 = match case + whole word
     

Thành viên đang xem bài viết (Users: 0, Guests: 0)