Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[REVIEW]: WordTokenizers.jl: Basic tools for tokenizing natural language in Julia #1956

Closed
whedon opened this issue Dec 13, 2019 · 70 comments
Closed

Comments

@whedon
Copy link
Collaborator

@whedon whedon commented Dec 13, 2019

Submitting author: @oxinabox (Lyndon White)
Repository: https://github.com/JuliaText/WordTokenizers.jl/
Version: v0.5.4
Editor: @will-rowe
Reviewer: @leios, @ninjin
Archive: 10.5281/zenodo.3663390

Status

status

Status badge code:

HTML: <a href="https://joss.theoj.org/papers/883b18d3c1cfbf8a5b2b53acb1f5ab81"><img src="https://joss.theoj.org/papers/883b18d3c1cfbf8a5b2b53acb1f5ab81/status.svg"></a>
Markdown: [![status](https://joss.theoj.org/papers/883b18d3c1cfbf8a5b2b53acb1f5ab81/status.svg)](https://joss.theoj.org/papers/883b18d3c1cfbf8a5b2b53acb1f5ab81)

Reviewers and authors:

Please avoid lengthy details of difficulties in the review thread. Instead, please create a new issue in the target repository and link to those issues (especially acceptance-blockers) by leaving comments in the review thread below. (For completists: if the target issue tracker is also on GitHub, linking the review thread in the issue or vice versa will create corresponding breadcrumb trails in the link target.)

Reviewer instructions & questions

@leios & @ninjin, please carry out your review in this issue by updating the checklist below. If you cannot edit the checklist please:

  1. Make sure you're logged in to your GitHub account
  2. Be sure to accept the invite at this URL: https://github.com/openjournals/joss-reviews/invitations

The reviewer guidelines are available here: https://joss.readthedocs.io/en/latest/reviewer_guidelines.html. Any questions/concerns please let @will-rowe know.

Please try and complete your review in the next two weeks

Review checklist for @leios

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@oxinabox) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?

Review checklist for @ninjin

Conflict of interest

  • I confirm that I have read the JOSS conflict of interest (COI) policy and that: I have no COIs with reviewing this work or that any perceived COIs have been waived by JOSS for the purpose of this review.

Code of Conduct

General checks

  • Repository: Is the source code for this software available at the repository url?
  • License: Does the repository contain a plain-text LICENSE file with the contents of an OSI approved software license?
  • Contribution and authorship: Has the submitting author (@oxinabox) made major contributions to the software? Does the full list of paper authors seem appropriate and complete?

Functionality

  • Installation: Does installation proceed as outlined in the documentation?
  • Functionality: Have the functional claims of the software been confirmed?
  • Performance: If there are any performance claims of the software, have they been confirmed? (If there are no claims, please check off this item.)

Documentation

  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • Installation instructions: Is there a clearly-stated list of dependencies? Ideally these should be handled with an automated package management solution.
  • Example usage: Do the authors include examples of how to use the software (ideally to solve real-world analysis problems).
  • Functionality documentation: Is the core functionality of the software documented to a satisfactory level (e.g., API method documentation)?
  • Automated tests: Are there automated tests or manual steps described so that the functionality of the software can be verified?
  • Community guidelines: Are there clear guidelines for third parties wishing to 1) Contribute to the software 2) Report issues or problems with the software 3) Seek support

Software paper

  • Summary: Has a clear description of the high-level functionality and purpose of the software for a diverse, non-specialist audience been provided?
  • A statement of need: Do the authors clearly state what problems the software is designed to solve and who the target audience is?
  • State of the field: Do the authors describe how this software compares to other commonly-used packages?
  • Quality of writing: Is the paper well written (i.e., it does not require editing for structure, language, or writing quality)?
  • References: Is the list of references complete, and is everything cited appropriately that should be cited (e.g., papers, datasets, software)? Do references in the text use the proper citation syntax?
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Dec 13, 2019

Hello human, I'm @whedon, a robot that can help you with some common editorial tasks. @leios, @ninjin it looks like you're currently assigned to review this paper 🎉.

⭐️ Important ⭐️

If you haven't already, you should seriously consider unsubscribing from GitHub notifications for this (https://github.com/openjournals/joss-reviews) repository. As a reviewer, you're probably currently watching this repository which means for GitHub's default behaviour you will receive notifications (emails) for all reviews 😿

To fix this do the following two things:

  1. Set yourself as 'Not watching' https://github.com/openjournals/joss-reviews:

watching

  1. You may also like to change your default settings for this watching repositories in your GitHub profile here: https://github.com/settings/notifications

notifications

For a list of things I can do to help you, just type:

@whedon commands

For example, to regenerate the paper pdf after making changes in the paper's md or bib files, type:

@whedon generate pdf
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Dec 13, 2019

Attempting to check references...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Dec 13, 2019

Attempting PDF compilation. Reticulating splines etc...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Dec 13, 2019


OK DOIs

- 10.1137/141000671 is OK
- 10.1609/aaai.v33i01.33016843 is OK

MISSING DOIs

- None

INVALID DOIs

- None
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Dec 13, 2019

@oxinabox

This comment has been minimized.

Copy link

@oxinabox oxinabox commented Dec 13, 2019

cc @Ayushk4

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 6, 2020

Hi @leios and @ninjin. Just chasing up this review - don't worry if you've not started yet, I realise it was the holidays etc.

Please let me know if you need anything. Cheers.

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 14, 2020

Hi @leios, @ninjin - just checking in with the reviews here. Can you please let me know when you might expect to have them completed?

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 14, 2020

Hey @will-rowe I am really sorry. I had a week to do it, but was finishing my thesis revisions during that time, then I had to move to my new position. I haven't had time to set up my stuff in my new place, so I don't know when I can do a review. By the earliest, this weekend. I am making it a priority to do then, but I understand if you want to try to find a new reviewer. Sorry again for the trouble.

@ninjin

This comment has been minimized.

Copy link

@ninjin ninjin commented Jan 14, 2020

@will-rowe: I should be able to handle it within the week.

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 14, 2020

Thanks @leios and @ninjin. Those timelines work for me. Let me know @leios if you don't manage to find time in the next couple of weeks. I'll ping again in a week to chase up

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 18, 2020

Hey, trying to start the review. Sorry I'm late. Also sorry if this is a stupid question, but how do I check the boxes? Last time I did a review, I could just click on them, but this time I do not seem to have permission.

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 18, 2020

I will submit a PR fixing a number of typos in the README and paper. I have a general question on the scope of this software regarding asian language processing, such as Japanese. I know that this is possible with TinySegmenter.jl, but is there a way to use this package with WordTokenizers?

@Ayushk4

This comment has been minimized.

Copy link

@Ayushk4 Ayushk4 commented Jan 19, 2020

WordTokenizer's default tokeniser doesn't work well on some Asian languages like Chinese, Japanese.

But, we can set up TinySegmenter.jl in the same way as RevTok.jl example given in readme.
Here's an example with the Japanese sample text taken from TinySegmenter.jl.

julia> using WordTokenizers

julia> tokenize("आप कैसे हैं?") |> print # Default tokenizer on Hindi
["आप", "कैसे", "हैं", "?"]

julia> tokenize("私の名前は中野です") |> print # Default tokenizer on Japanese 
["私の名前は中野です"]

julia> import TinySegmenter

julia> set_tokenizer(TinySegmenter.tokenize)

julia> tokenize("私の名前は中野です") |> print # TinySegmenter's tokenizer on Japanese
SubString{String}["私", "の", "名前", "は", "中野", "です"]
@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 19, 2020

Ah. I was missing the .tokenize. I don't know why I didn't put it there, clearly the documentation does the same thing for Revtok. Thanks!

With that, I think I can check all the boxes on the review!

@oxinabox

This comment has been minimized.

Copy link

@oxinabox oxinabox commented Jan 19, 2020

I have a general question on the scope of this software regarding asian language processing, such as Japanese.

For interest the default tokenizer TokTok has:

been tested on, and gives reasonably good results for English, Persian, Russian, Czech, French, German, Vietnamese, Tajik, and a few others.

Which is to say a bunch of languages using the Latin (English, French, German, Vietnamese), or the Cyrillic (Russian, Czech, Tajik), or Persian alphabet (Farsi).
All of which use space as primary token seperation.

We don't yet have anything that supports the morpheme segementation needed for languages like Japanese or Chinese.

I would speculate, just based on the people involved in JuliaText, we are likely to get support for 1 or more Indian languages before anything else.
Most of which, as I understand it are also space seperated.

I know that this is possible with TinySegmenter.jl, but is there a way to use this package with WordTokenizers?

@Ayushk4 updated the readme now with that example.
Which i think is a much better one,
as RevTok.jl is unmaintained, and also we have our own built in RevTok these days.

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 19, 2020

I don't see the updated readme yet, if you are going to change it, could you use something like, "ジュリアプログラミング言語が大好きです!"

It translate to "I love the Julia programming language!" but also shows how it segments all three alphabets (it lumps Hiragana words together, which might be an issue for some people).

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 20, 2020

Hi @leios. You should be able to edit the top comment in this thread - click the 3 dots and then edit to update your checklist (via markdown). Let me know if you're stuck - and thanks for the review!

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 20, 2020

@will-rowe I don't have that option, only "copy link" and "quote reply"

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 20, 2020

hmmm - did you accept the invite at the top of the thread? Link here. If you have already done this, let me know and I'll have to ask someone as I'm out of ideas!

@leios

This comment has been minimized.

Copy link

@leios leios commented Jan 20, 2020

Sorry, I should have known that was a requirement. Filled in everything now. Thanks!

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Jan 28, 2020

Hi @ninjin - just pinging you to see how your review is going? Thanks!

@ninjin

This comment has been minimized.

Copy link

@ninjin ninjin commented Jan 28, 2020

@will-rowe: Ouch, sorry. On it today. Sorry for being the slowest reviewer you have on the roster and thank you for the poke.

@leios: I would prefer: “日本語はひらがなとカタカナと漢字で表されます。” (“Japanese is expressed using hiragana, katakana, and kanji.”) over your example sentence. Sure, this one is way more formal, but yours somehow sounds a bit odd to me. Perhaps because it expresses something somewhat intimate in a formal way?

@ninjin

This comment has been minimized.

Copy link

@ninjin ninjin commented Jan 29, 2020

Repository:

  1. No installation instructions as far as I can see. Although a bit silly for Julia, a single reference to the necessary command is enough.

Paper:

  1. I do not believe I have ever seen normalisation as a part of tokenisation, thus I would remove: “Such word tokenization also often includes some normalizing, such as correcting unusual spellings or removing all punctuations.”.

  2. It may be worth mentioning that “sentence splitting” is another term often used for “sentence segmentation”. For the record, I have never seen “sentence tokenisation” outside of NLTK, but I am happy to be corrected.

Non-mandatory (just comments, really):

  1. It may be wise to consider including purely statistical tokenisation algorithms such as those used by BERT and friends. They are becoming more and more popular and I suspect they may be the standard very soon.

  2. For some real competition in regards to performance, see this. It went public post-submission though.

All in all, a nice solid package. Well done!

@will-rowe

This comment has been minimized.

Copy link

@will-rowe will-rowe commented Feb 7, 2020

Thanks @oxinabox for a nice submission. And many thanks to @leios and @ninjin for your excellent reviews.

Pinging @openjournals/joss-eics to move this to acceptance

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 7, 2020

@oxinabox I'm taking over for the rest of your submission. Can you edit the Zenodo data a little more, so that the title matches that of your paper?

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 7, 2020

@oxinabox I've made some changes to your text and bib file in PRs. Please merge what you agree with: #47 and #48

@oxinabox

This comment has been minimized.

Copy link

@oxinabox oxinabox commented Feb 7, 2020

done, thanks good changes

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 8, 2020

@oxinabox I'm taking over for the rest of your submission. Can you edit the Zenodo data a little more, so that the title matches that of your paper?

@oxinabox Ok also this part.

@oxinabox

This comment has been minimized.

Copy link

@oxinabox oxinabox commented Feb 8, 2020

@oxinabox I'm taking over for the rest of your submission. Can you edit the Zenodo data a little more, so that the title matches that of your paper?

@oxinabox Ok also this part.

I thought I did so.
I don't know why Zenodo is not showing the new title.
Am I editting the wrong place?

image

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 10, 2020

@oxinabox Is the metadata updated when you look at it online? It still isn't for me. Maybe this will help? https://github.com/geodynamics/best_practices/blob/master/ZenodoBestPractices.md

@oxinabox

This comment has been minimized.

Copy link

@oxinabox oxinabox commented Feb 12, 2020

Ok, not sure what is going on with Zenodo, but i cut a new release on github and that one editted fine.

DOI

10.5281/zenodo.3663390

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 19, 2020

Ok great!

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 19, 2020

@whedon set 10.5281/zenodo.3663390 as archive

@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

OK. 10.5281/zenodo.3663390 is the archive.

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 19, 2020

@whedon accept

@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

Attempting dry run of processing paper acceptance...
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

Reference check summary:

OK DOIs

- 10.1137/141000671 is OK
- 10.1609/aaai.v33i01.33016843 is OK

MISSING DOIs

- None

INVALID DOIs

- None
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

Check final proof 👉 openjournals/joss-papers#1322

If the paper PDF and Crossref deposit XML look good in openjournals/joss-papers#1322, then you can now move forward with accepting the submission by compiling again with the flag deposit=true e.g.

@whedon accept deposit=true
@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 19, 2020

@whedon accept deposit=true

@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

Doing it live! Attempting automated processing of paper acceptance...
@whedon whedon added the accepted label Feb 19, 2020
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

🐦🐦🐦 👉 Tweet for this paper 👈 🐦🐦🐦

@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 19, 2020

🚨🚨🚨 THIS IS NOT A DRILL, YOU HAVE JUST ACCEPTED A PAPER INTO JOSS! 🚨🚨🚨

Here's what you must now do:

  1. Check final PDF and Crossref metadata that was deposited 👉 openjournals/joss-papers#1323
  2. Wait a couple of minutes to verify that the paper DOI resolves https://doi.org/10.21105/joss.01956
  3. If everything looks good, then close this review issue.
  4. Party like you just published a paper! 🎉🌈🦄💃👻🤘

Any issues? notify your editorial technical team...

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 19, 2020

@openjournals/dev There is something wrong with the paper DOI. This seems to keep happening to me. How can I prevent it/watch for it in the future?

@kyleniemeyer

This comment has been minimized.

Copy link

@kyleniemeyer kyleniemeyer commented Feb 19, 2020

@kthyng the DOI resolves for me, so it may just be a caching issue with your browser? Though sometimes it does take a few minutes or longer for it to initially resolve, which is a Crossref issue, I think.

@arfon

This comment has been minimized.

Copy link
Member

@arfon arfon commented Feb 19, 2020

@openjournals/dev There is something wrong with the paper DOI. This seems to keep happening to me. How can I prevent it/watch for it in the future?

It takes a few mins for the DOI to register, plus sometimes, the DOI resolves before the GitHub Pages build is ready (so the PDF doesn't render).

Basically I recommend waiting a few mins before clicking the DOI link, and when rechecking, it sometimes helps to (re)try in incognito/private mode too to help your browser avoid caching issues.

@danielskatz

This comment has been minimized.

Copy link

@danielskatz danielskatz commented Feb 19, 2020

Sometimes I retry from a different network (e.g., phone vs wifi), since the caching seems to happen in the specific network somewhere.

@arfon arfon closed this Feb 20, 2020
@whedon

This comment has been minimized.

Copy link
Collaborator Author

@whedon whedon commented Feb 20, 2020

🎉🎉🎉 Congratulations on your paper acceptance! 🎉🎉🎉

If you would like to include a link to your paper from your README use the following code snippets:

Markdown:
[![DOI](https://joss.theoj.org/papers/10.21105/joss.01956/status.svg)](https://doi.org/10.21105/joss.01956)

HTML:
<a style="border-width:0" href="https://doi.org/10.21105/joss.01956">
  <img src="https://joss.theoj.org/papers/10.21105/joss.01956/status.svg" alt="DOI badge" >
</a>

reStructuredText:
.. image:: https://joss.theoj.org/papers/10.21105/joss.01956/status.svg
   :target: https://doi.org/10.21105/joss.01956

This is how it will look in your documentation:

DOI

We need your help!

Journal of Open Source Software is a community-run journal and relies upon volunteer effort. If you'd like to support us please consider doing either one (or both) of the the following:

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 24, 2020

@arfon @kyleniemeyer Sorry about the unwarranted alert! When I checked, it was showing up as the orange-ish not-working page, which in the past had meant a different problem, rather than the blue-ish the-DOI-just-hasn't-resolved-yet page.

@kthyng

This comment has been minimized.

Copy link

@kthyng kthyng commented Feb 24, 2020

A belated congratulations to @oxinabox on your new paper! Thanks to @will-rowe for editing and to reviewers @leios and @ninjin — we really appreciate your time and expertise!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked pull requests

Successfully merging a pull request may close this issue.

None yet
10 participants
You can’t perform that action at this time.